home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / faq / prolog.127 < prev    next >
Encoding:
Internet Message Format  |  1995-04-20  |  163.3 KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!uhog.mit.edu!nntp.club.cc.cmu.edu!cantaloupe.srv.cs.cmu.edu!mkant
  2. From: mkant+@cs.cmu.edu (Mark Kantrowitz)
  3. Newsgroups: comp.lang.prolog,comp.object.logic,news.answers,comp.answers
  4. Subject: FAQ: Prolog Resource Guide 1/2 [Monthly posting]
  5. Supersedes: <PRG_1_792662434@CS.CMU.EDU>
  6. Followup-To: poster
  7. Date: 13 Mar 1995 08:02:50 GMT
  8. Organization: School of Computer Science, Carnegie Mellon University
  9. Lines: 1700
  10. Approved: news-answers-request@MIT.Edu
  11. Distribution: world
  12. Expires: 24 Apr 1995 08:00:33 GMT
  13. Message-ID: <PRG_1_795081633@CS.CMU.EDU>
  14. Reply-To: mkant+prg@cs.cmu.edu
  15. NNTP-Posting-Host: glinda.oz.cs.cmu.edu
  16. Xref: senator-bedfellow.mit.edu comp.lang.prolog:12370 comp.object.logic:388 news.answers:39806 comp.answers:10628
  17.  
  18. Archive-name: prolog/resource-guide/part1
  19. Last-Modified: Fri Mar 10 16:35:04 1995 by Mark Kantrowitz
  20. Version: 1.27
  21. Maintainer: Mark Kantrowitz <mkant+prg@cs.cmu.edu>
  22. URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
  23. Size: 81042 bytes, 1708 lines
  24.  
  25. ;;; ****************************************************************
  26. ;;; Prolog Resource Guide ******************************************
  27. ;;; ****************************************************************
  28. ;;; prg_1.faq
  29.  
  30. This post contains the Prolog Resource Guide.
  31.  
  32. Contributions, corrections, suggestions, and comments should be sent
  33. to Mark Kantrowitz <mkant+prg@cs.cmu.edu>. 
  34.  
  35. This guide lists a variety of resources for the Prolog community,
  36. including books, magazines, ftp archives, and products. It is posted
  37. on the 13th of every month to the newsgroups comp.lang.prolog and
  38. comp.object.logic. The PRG is also posted to the newsgroups
  39. news.answers and comp.answers where they should be available at any
  40. time (ask your local news manager).
  41.  
  42. *** Copyright:
  43.  
  44. Copyright (c) 1992-94 by Mark Kantrowitz. All rights reserved.
  45.  
  46. This FAQ may be freely redistributed in its entirety without
  47. modification provided that this copyright notice is not removed.  It
  48. may not be sold for profit or incorporated in commercial documents
  49. (e.g., published for sale on CD-ROM, floppy disks, books, magazines,
  50. or other print form) without the prior written permission of the
  51. copyright holder.  Permission is expressly granted for this document
  52. to be made available for file transfer from installations offering
  53. unrestricted anonymous file transfer on the Internet.
  54.  
  55. If this FAQ is reproduced in offline media (e.g., CD-ROM, print form,
  56. etc.), a complimentary copy should be sent to Mark Kantrowitz, School
  57. of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue,
  58. Pittsburgh, PA 15213-3891 USA.
  59.  
  60. This article is provided AS IS without any express or implied warranty.
  61.  
  62. *** Recent Changes:
  63.  
  64. ;;; 1.24:
  65. ;;; 13-OCT-94 mk    Added Hdrug to [1-5].
  66. ;;; 13-OCT-94 mk    Added FW_Rules to [1-5].
  67. ;;; 14-OCT-94 mk    Added KLIC entry and removed PDSS entry in [2-3].
  68. ;;; 14-OCT-94 mk    Updated Quintus entry in [2-2].
  69. ;;; 20-OCT-94 mk    Updated prices for books by Dennis Merritt of Amzi! Inc.
  70. ;;; 20-OCT-94 mk    Added entry on GT-Prolog (prolog for Amiga) to [2-2].
  71. ;;; 28-OCT-94 mk    WWW archive of articles from the LP Newsletter.
  72. ;;; 28-OCT-94 mk    WWW page for ILOG.
  73. ;;; 10-NOV-94 mk    Updated ESL Prolog-2 entry.
  74. ;;;
  75. ;;; 1.25:
  76. ;;;  7-DEC-94 mk    Updated LIFE entry in part 2.
  77. ;;;
  78. ;;; 1.26:
  79. ;;; 16-JAN-95 mk    Added [1-18] History of Prolog.
  80. ;;; 16-JAN-95 mk    Updated IF/Prolog entry in part 2.
  81. ;;; 17-JAN-95 mk    Updated PNLA ftp address.
  82. ;;; 26-JAN-95 mk    Added DFKI Oz to [2-5].
  83. ;;;
  84. ;;; 1.27:
  85. ;;; 20-FEB-95 mk    Added LogTalk entry to [1-6].
  86.  
  87. *** Topics Covered:
  88.  
  89. There are currently two parts to the PRG:
  90.  
  91.    1. Introductory Matter and General Questions
  92.    2. Prolog Implementations
  93.  
  94. Table of Contents (Part 1):
  95.  
  96.   [1-0]  Introduction
  97.   [1-1]  Sources of information about Prolog
  98.   [1-2]  Prolog-related Mailing Lists
  99.   [1-3]  Books and Magazine Articles
  100.   [1-4]  Prolog and Logic Programming Associations and Journals
  101.   [1-5]  FTP Archives and Other Resources
  102.   [1-6]  Free Object-Oriented Systems for Prolog
  103.   [1-7]  Commercial Object-Oriented Systems for Prolog
  104.   [1-8]  The Prolog 1000 Database
  105.   [1-9]  X-Windows Interfaces
  106.   [1-10] Is there a straight-forward way of compiling Prolog to C?
  107.   [1-11] WAM emulators and tracers
  108.   [1-12] What is the Basic Andorra Model and AKL?
  109.   [1-13] What is Constraint Logic Programming?
  110.   [1-14] How do you write portable programs in Prolog?
  111.   [1-15] World-Wide Web (WWW) Resources
  112.   [1-16] Prolog Job Postings
  113.   [1-17] Is Prolog really used in Windows NT?
  114.   [1-18] History of Prolog
  115.   [1-A]  Acknowledgements
  116.  
  117. Prolog Implementations (Part 2):
  118.  
  119.   [2-0]  General information about Prolog Implementations
  120.   [2-1]  Free Prolog Implementations
  121.   [2-2]  Commercial Prolog Implementations
  122.   [2-3]  Free Parallel Prolog Implementations
  123.   [2-4]  Commercial Parallel Prolog Implementations
  124.   [2-5]  Free Constraint Systems
  125.   [2-6]  Commercial Constraint Systems
  126.   [2-7]  Free Logic Programming Systems
  127.   [2-8]  Commercial Logic Programming Systems
  128.   [2-9]  Other Commercial Prolog Products
  129.   [2-10] Prolog extensions, meta-interpreters, and pre-processors
  130.  
  131. Search for [#] to get to topic number # quickly. In newsreaders which
  132. support digests (such as rn), [CTRL]-G will page through the answers.
  133.  
  134. ----------------------------------------------------------------
  135. Subject: [1-0] Introduction
  136.  
  137. Certain questions and topics come up frequently in the various network
  138. discussion groups devoted to and related to Prolog and logic programming.
  139. This file/article is an attempt to gather these questions and their
  140. answers into a convenient reference for Prolog programmers.  It (or a
  141. reference to it) is posted periodically.  The hope is that this will
  142. cut down on the user time and network bandwidth used to post, read and
  143. respond to the same questions over and over, as well as providing
  144. education by answering questions some readers may not even have
  145. thought to ask.
  146.  
  147. This guide lists Prolog and logic programming resources: archives,
  148. newsgroups, books, magazines, compilers, interpreters and anything
  149. else you can think of which has to do with the proliferation of Prolog
  150. and logic programming. Also included is a list of suppliers of
  151. products and a list of publishers. Topics can also include
  152. unification, backtracking search, and other aspects of logic
  153. programming. As Prolog has a strong historical tradition in Europe,
  154. we've tried to ensure that the information is relevant to all readers,
  155. including European and North American.
  156.  
  157. This is not a Prolog tutorial, nor is it an exhaustive list of all Prolog
  158. intricacies.  Prolog is a very powerful and expressive language, but with
  159. that power comes many complexities.  This list attempts to address the
  160. ones that average Prolog programmers are likely to encounter.  If you are
  161. new to Prolog, read one of the introductions listed in the answer to
  162. question [1-3].
  163.  
  164. Please do not post homework questions to the comp.lang.prolog
  165. newsgroup. You won't learn anything if somebody else does the problem
  166. for you, and won't get any credit for your answer if your instructor
  167. reads the newsgroup. 
  168.  
  169. Please also avoid starting the debate on which language is better;
  170. Prolog or Lisp, Prolog or C, and so on. Such discussions are rarely
  171. productive, and nobody will change their opinion as a result of the
  172. debate. The usual conclusion of such debates is that the languages are
  173. Turing equivalent, but some languages are better suited for particular
  174. tasks. For Prolog, the consensus is that it is a good choice for
  175. problems involving logic and problems whose solution can be
  176. represented or characterized succinctly in logical form. Some folks
  177. feel Prolog is the best language for natural language processing;
  178. others disagree.
  179.  
  180. This guide is posted regularly to comp.lang.prolog and comp.object.logic. 
  181. It may also be obtained by anonymous ftp from 
  182.    ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/  [128.2.206.173]
  183. using username "anonymous" and password "name@host" (substitute your
  184. email address) or via AFS in the Andrew File System directory
  185.    /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/prolog/
  186. as the files prg_1.faq and prg_2.faq.
  187.  
  188. You can also obtain a copy of the FAQ by sending a message to
  189. ai+query@cs.cmu.edu with 
  190.    Send PRG
  191. in the message body.
  192.  
  193. The FAQ postings are also archived in the periodic posting archive on
  194.    rtfm.mit.edu:/pub/usenet/news.answers/prolog/ [18.181.0.24]
  195. If you do not have anonymous ftp access, you can access the archive by
  196. mail server as well.  Send an E-mail message to
  197. mail-server@rtfm.mit.edu with "help" and "index" in the body on
  198. separate lines for more information.
  199.  
  200. An automatically generated HTML version of the PRG is accessible by
  201. WWW as part of the AI-related FAQs Mosaic page. The URL for this
  202. resource is
  203.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/top.html
  204. The direct URL for the PRG is
  205.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
  206.  
  207. If you need to cite the FAQ for some reason, use the following format:
  208.    Mark Kantrowitz, "Prolog Resource Guide", comp.lang.prolog, <month>, <year>,
  209.    ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/prg_?.faq, mkant+prg@cs.cmu.edu.
  210.  
  211. Disclaimer:
  212.  
  213.    We have taken great care in making the information in this document as
  214.    accurate as possible. However we are not responsible for any problems
  215.    which might occur from using information supplied in this guide.
  216.  
  217. ----------------------------------------------------------------
  218. Subject:  [1-1]  Sources of Information about Prolog
  219.  
  220. The newsgroups comp.lang.prolog, comp.object.logic, and (to a lesser
  221. extent) comp.ai are a source of information and discussion about Prolog. 
  222. See also sci.logic. The newsgroup comp.constraints is for information
  223. about constraint processing languages and related topics. 
  224.  
  225. A "Frequently Asked Questions" posting is posted to comp.lang.prolog
  226. twice a month by Jamie Andrews <jamie@cs.sfu.ca>. The Prolog FAQ and this
  227. Prolog Resource Guide are intended to complement one another.
  228.  
  229. The draft ISO standard for Prolog is available by anonymous ftp from
  230.    ai.uga.edu:/pub/prolog.standard/ [128.192.12.9]
  231. An unofficial summary of the draft ISO Prolog standard is available
  232. from the same location as isoprolog.tex or isoprolog.ps.Z.  Send mail
  233. to Michael Covington <mcovingt@ai.uga.edu> for more information about
  234. his summary of the standard. For more information about the ISO Prolog
  235. standard itself, write to Roger Scowen, ISO/IEC JTC1 SC22 WG17 (Prolog)
  236. convener, DITC/93, National Physical Laboratory, TEDDINGTON, Middlesex
  237. TW11 0LW, UNITED KINGDOM, call +44-81-943-6956, fax +44-81-977-7091,
  238. or send email to rss@seg.npl.co.uk.
  239.  
  240. Richard O'Keefe's 1984 Prolog standard draft is available by anonymous
  241. FTP from 
  242.    ftp.ecrc.de:/pub/eclipse/std/plstd.doc
  243.  
  244. ----------------------------------------------------------------
  245. Subject: [1-2]  Mailing Lists
  246.  
  247. Prolog and Logic Programming:
  248.    prolog@sushi.stanford.edu (general)
  249.    prolog-hackers@sushi.stanford.edu (nitty gritty)
  250.  
  251.    All requests to be added to or deleted from this list, problems,
  252.    questions, etc., should be sent to prolog-request@sushi.stanford.edu
  253.  
  254.    [The host sushi.stanford.edu no longer exists, as of 11/24/92.
  255.     Does anybody know the new location of the mailing lists?]
  256.  
  257. Lambda Prolog:
  258.    lprolog@cis.upenn.edu
  259.  
  260.    To subscribe, send mail to lprolog-request@cis.upenn.edu.
  261.  
  262. Electronic Journal of Functional and Logic Programming (EJFLP)
  263.  
  264.    EJFLP is a refereed journal that will be distributed for free via e-mail.
  265.    The aim of EJFLP is to create a new medium for research investigating the
  266.    integration of the functional, logic and constraint programming paradigms.
  267.  
  268.    For instructions on submitting a paper, send an empty mail message with 
  269.       Subject: Help
  270.    to: 
  271.       submissions@ls5.informatik.uni-dortmund.de. 
  272.    You will receive an acknowledgment of your submission within a few hours.
  273.  
  274.    To subscribe to the journal, send an empty mail message to the following
  275.    address:
  276.        subscriptions@ls5.informatik.uni-dortmund.de
  277.    You will receive an acknowledgment of your subscription within a few days. 
  278.  
  279.    If there are any problems with the mail-server, send mail to
  280.    ejflp.op@ls5.informatik.uni-dortmund.de. 
  281.  
  282.    The editorial board is: Rita Loogen (RWTH Aachen), Herbert Kuchen (RWTH
  283.    Aachen), Michael Hanus (MPI-Saarbruecken), Manuel MT Chakravarty (TU
  284.    Berlin), Martin Koehler (Imperial College London), Yike Guo (Imperial
  285.    College London), Mario Rodriguez-Artalejo (Univ. Madrid), Andy Krall
  286.    (TU Wien), Andy Mueck (LMU Muenchen), Tetsuo Ida (Univ. Tsukuba,
  287.    Japan), Hendrik C.R. Lock (IBM Heidelberg), Andreas Hallmann (Univ.
  288.    Dortmund), Peter Padawitz (Univ. Dortmund), Christoph Brzoska (Univ.
  289.    Karlsruhe).
  290.  
  291. PDC-L:
  292.    PDC-L@nic.surfnet.nl is a discussion list for PDC Prolog users.
  293.  
  294.    To subscribe, send mail to LISTSERV@nic.surfnet.nl with 
  295.        SUBSCRIBE PDC-L <your full name>
  296.    in the message body.
  297.  
  298. Theorem Provers:
  299.    theorem-provers@ai.mit.edu
  300.  
  301.    This (unmoderated) list is intended for announcements of interest to
  302.    people interested in automated theorem proving.
  303.  
  304.    To subscribe, send your email address to theorem-provers-request@ai.mit.edu.
  305.  
  306. Type Theory:
  307.    types@dcs.gla.ac.uk
  308.  
  309.    Moderated mailing list about type theory. Archived on 
  310.       theory.lcs.mit.edu:/pub/meyer/
  311.  
  312.    To subscribe, send mail to types-request@dcs.gla.ac.uk.
  313.  
  314. Logic:
  315.    logic@cs.cornell.edu
  316.  
  317.    Moderated mailing list about logic. Archived on 
  318.       theory.lcs.mit.edu:/pub/meyer/
  319.   
  320.    To subscribe, send mail to logic-request@cs.cornell.edu
  321.  
  322. ALP (French Chapter):
  323.    prog-logique@irisa.fr
  324.  
  325.    La liste de diffusion "prog-logique" est le support electronique de
  326.    communication de la section francaise de l'ALP (Association for Logic
  327.    Programming), groupe de travail AFCET. Elle complete la lettre du
  328.    groupe publiee trimestriellement.
  329.  
  330.    Pour vous abonner ou vous desabonner, il faut envoyer un "mail" au
  331.    serveur de listes, a l'adresse 
  332.       listserv@irisa.fr
  333.    sans sujet ni signature, et dont le corps du message contient 
  334.         SUB prog-logique Prenom Nom
  335.    Un acquittement est renvoye par messagerie. Pour desabonnement, ecrit
  336.         SIGNOFF prog-logique
  337.    Les requetes envoyees directement a la liste ne seront pas prises en
  338.    compte.
  339.  
  340. ----------------------------------------------------------------
  341. Subject: [1-3] Books and Magazine Articles
  342.  
  343. A BiBTeX bibliography of Logic Programming Conferences is available by
  344. anonymous ftp from duck.dfki.uni-sb.de. See [1-5] below.
  345.  
  346. A partially annotated bibliography of work on integrating
  347. object-oriented and logic programming is available by anonymous ftp
  348. from menaik.cs.ualberta.ca:/pub/oolog/ in PostScript and BibTeX
  349. formats. Written by Vladimir Alexiev <vladimir@cs.ualberta.ca>.
  350.  
  351. The following books are regarded as popular and widely used. Also
  352. included are some books about WAM. This is not intended to be a complete
  353. Prolog bibliography.
  354.  
  355. Prolog Programming:
  356.  
  357.    Covington, Michael A.; Nute, D.; and Vellino, A. "Prolog
  358.    Programming in Depth", Scott, Foresman & Co., 1987. ISBN 0-521-40984-5
  359.    (Out of print, but new edition coming soon. Copies of the 1987
  360.    edition are still available from the University of Georgia
  361.    Bookstore, at 706-542-7131.)
  362.  
  363.    Clocksin, W.F. and Mellish, C.S: "Programming in Prolog", 3rd Ed.
  364.    Springer Verlag, 1987. 281 pages, ISBN 0-387-17539-3 ($29). 
  365.    [Basic introduction to Prolog.]
  366.  
  367.    Coelho, H., and Cotta, J.C., "Prolog by Example", Springer Verlag,
  368.    1988. 381 pages, ISBN 0-387-18313-2 ($39.50).
  369.  
  370.    Cooke, Daniel E., "Logic: The Basis for Understanding Prolog", 
  371.    Ablex, Norwood, NJ, 1994. 224 pages, ISBN 1-56750-028-5 ($27.50).
  372.    [Intro to Prolog with a review of the basic ideas underlying the language.]
  373.  
  374.    Conlon, Tom: "Programming in Parlog". Addison-Wesley, 1989, 
  375.    ISBN 0-201-17450-2.
  376.  
  377.    Dawe, C.M. and M.S. Dawe, "Prolog for Computer Science", Springer
  378.    Verlag, 1994. 190 pages, ISBN 0-387-19811-3 paper ($35). [Intro to
  379.    computer science using Prolog.]
  380.  
  381.    Dodd, Anthony, "Prolog: A logical approach", Oxford University
  382.    Press, New York, 1990, 556 pages. ISBN 0-198-53822-7 (cloth), $52.50; 
  383.    ISBN 0-198-53821-9 (paperback), $26.00.
  384.  
  385.    Kluzniak and Szpakowicz: "Prolog for Programmers", Academic Press 1985
  386.  
  387.    G. L. Lazarev, "Why Prolog? Justifying Logic Programming for Practical
  388.    Applications", Prentice Hall, 1989. [Software engineering bent.
  389.    Emphasizes advantages of declarative programming.]
  390.  
  391.    Le, Tu Van,  "Techniques of Prolog programming, with implementation
  392.    of logical negation and quantified goals", John Wiley, New York, 1993.
  393.    ISBN: 0-471-57175-X (American edition), 0-471-59970-O (International
  394.    edition).  LnProlog, a Prolog interpreter that supports negative
  395.    finding queries and quantified queries is available together with
  396.    the book. 
  397.  
  398.    Saint-Dizier, P., "An Introduction to Programming in Prolog",
  399.    Springer Verlag, 1990. 184 pages, ISBN 0-387-97144-0 paper ($25).
  400.    [Tutorial introduction, with simple examples of AI programs and games.]
  401.  
  402.    Leon Sterling, editor, "The Practice of Prolog", MIT Press, 1990.
  403.    342 pages, ISBN 0-262-19301-9, $39.95.
  404.  
  405. Advanced Prolog Programming:
  406.  
  407.    O'Keefe, Richard A., "The Craft of PROLOG", MIT Press, 1990, 410 pages.
  408.    ISBN 0-262-15039-5, $42.50.
  409.  
  410.    Peter Ross, "Advanced Prolog: Techniques and Examples",
  411.    Addison-Wesley, 1989, ISBN 0-201-17527-4.
  412.  
  413.    Leon Sterling and Ehud Shapiro, "The Art of Prolog: Advanced
  414.    Programming Techniques", 2nd Edition, MIT Press, 1994. 688 pages,
  415.    ISBN 0-262-19338-8 ($49.95).
  416.    [Source code for the book is available in ftp.cwru.edu:/ArtOfProlog/.
  417.     There is a subdirectory for each chapter of the book containing the
  418.     text of the programs in that chapter.]
  419.  
  420. AI and Prolog:
  421.  
  422.    Yoav Shoham, "Artificial Intelligence Techniques in Prolog", Morgan
  423.    Kaufmann Publishers, 1993, 400 pages. ISBN 1-55860-167-8 (paper) $39.95. 
  424.    ISBN 1-55860-319-0 (cloth) $49.95. [Topics include search, backward
  425.    chaining, data-driven methods, truth maintenance, constraint
  426.    satisfaction, reasoning with uncertainty, planning, temporal
  427.    reasoning, machine learning, and natural language processing. Prolog
  428.    source for all the programs in the book is available by anonymous ftp
  429.    from unix.sri.com:/pub/shoham/]
  430.  
  431.    Bratko, Ivan, "Programming in Prolog for Artificial Intelligence", 
  432.    2nd Edition, Addison-Wesley, 1990. [Good introduction to Prolog and AI.
  433.    A bit large, though, for an Intro to Prolog course. Includes
  434.    discussion of the 8-queens problem.]
  435.  
  436.    Dennis Merritt, "Building Expert Systems in Prolog", Springer-Verlag, 1989.
  437.    358 pages, ISBN 0-387-97016-9 hardcover ($52).
  438.    Explains how to build various expert system shells in Prolog, including
  439.    forward/backward chaining, FOOPS, rete-network, frames, solving
  440.    Rubik's cube and more. Includes complete source code listings.
  441.    (Source code from the book is also sold on disk by Amzi! Inc. and
  442.    is available by anonymous FTP from
  443.       ftp.std.com:/ftp/vendors/amzi/programs/
  444.       ftp.cs.cmu.edu:/user/ai/areas/expert/systems/amzi/programs/
  445.    as the files xsip.*)
  446.  
  447.    Dennis Merritt: "Adventure in Prolog", Springer-Verlag, 1990. 
  448.    186 papers, ISBN 0-387-97315-X hardcover ($38).
  449.    Teaches Prolog by leading the reader through the construction of an
  450.    adventure game. The exercises lead the reader through three other
  451.    programs:  an intelligent database, an expert system and an order-entry
  452.    program.  While most texts teach Prolog with fragments of interesting code,
  453.    this book takes a more pragmatic (as opposed to theoretical approach) and
  454.    shows the reader how to assemble complete Prolog programs.
  455.  
  456.    Gazdar, G. and Mellish, C., "Natural Language Processing in Prolog:
  457.    An Introduction to Computational Linguistics", Addison-Wesley,
  458.    Reading, Massachusetts, 1989. (There are three different editions
  459.    of the book, one for Lisp, one for Prolog, and one for Pop-11.)
  460.  
  461.    Fernando C.N. Pereira and Stuart M. Shieber, "Prolog and
  462.    Natural-Language Analysis", CSLI Lecture Notes Number 10, Stanford,
  463.    CA, 1987. 286 pages, ISBN 0-937073-18-0.
  464.  
  465.    Michael A. Covington, "Natural Language Processing for Prolog
  466.    Programmers", Prentice-Hall, Englewood Cliffs, NJ, 1994. ISBN
  467.    0-13-629213-5.
  468.  
  469.    Harvey Abramson and Veronica Dahl, "Logic Grammars", Springer-Verlag,
  470.    New York, 1989, 234 pages, ISBN 0-387-96961-6.
  471.  
  472.    Peter Flach, "Simply Logical: Intelligent Reasoning by Example",
  473.    John Wiley & Sons, 1994, 256 pages. ISBN 0-471-94152-2 paper ($31.95).
  474.    [Covers theoretical and practical aspects of Prolog programming as well
  475.    as AI topics like knowledge representation, search, heuristics, 
  476.    abduction, default reasoning, and induction. Every technique is
  477.    accompanied by a Prolog program that implements it. More information
  478.    about the book is available from  
  479.       http://machtig.kub.nl:2080/Infolab/Peter/SimplyLogical.html
  480.    or by email from Peter.Flach@kub.nl.]
  481.  
  482. Prolog and Object-Oriented Programming:
  483.  
  484.    Chris Moss, "Prolog++ The Power of Object-Oriented and Logic
  485.    Programming", Addison-Wesley, 1994. 312 pages, ISBN 0-201-56507-2. UK
  486.    price is 21.95 pounds. [This paperback includes a special offer to
  487.    obtain a Prolog++ compiler from LPA for Windows 3.1 or Macintosh. UK
  488.    price is 29.95 pounds (plus 17.5 percent VAT) plus 5.00 pounds postage
  489.    and handling. Elsewhere the cost is $49.95 plus $8 p&h.]
  490.  
  491. Logic Programming:
  492.  
  493.    Hogger, Christopher J., "Introduction to Logic Programming",
  494.    Academic Press, 1984. 278 pages. ISBN 0-12-352090-8 (alk. paper)
  495.    ISBN 0-12-352092-4 (pbk.).
  496.  
  497.    Hogger, Christopher J., "Essentials of Logic Programming", 
  498.    Clarendon Press, Oxford, 1990. ISBN 0-19-853820-0. [Covers both
  499.    foundations and more practical material, relating it all to Prolog.
  500.    Takes a different approach than his first intro, dividing the book
  501.    into many short "themes" instead of chapters, and including many
  502.    excercises (with some answers).]
  503.  
  504.    Kowalski, R.A.: "Logic for Problem Solving", New York 1979, Elsevier Publ.
  505.  
  506.    LLoyd, John: "Foundations of Logic Programming", 2nd Edition,
  507.    Springer-Verlag, 1988. (Intro to logic programming theory.)
  508.  
  509.    David Maier and David S. Warren: "Computing with Logic: Logic
  510.    Programming with Prolog", Benjamin Cummings, Menlo Park, CA, 1989.
  511.  
  512.    Nilsson, Ulf and Maluszynski, Jan, "Logic, Programming and Prolog",
  513.    John Wiley & Sons, 1990, ISBN 0-471-92625-6.
  514.  
  515.    Subrata Kumar DAS, "Deductive Databases and Logic Programming",
  516.    Addison-Wesley Publishing Company, July 1992, 448 pages. 
  517.    ISBN 0-201-56897-7. 
  518.  
  519. Constraint Logic Programming and Constraint Satisfaction:
  520.  
  521.    Bennaceur, Hachemi and Gerard Plateau, "An exact algorithm for the
  522.    constraint satisfaction problem: Application to logical inference",
  523.    Information Processing Letters 48(3):151-158, November 19, 1993.
  524.  
  525.    Cohen, J., "Constraint Logic Programming Languages", Communciations
  526.    of the ACM 33(7):52-68, 1992. [Good introduction to CLP and
  527.    includes a historical overview.]
  528.  
  529.    Freeman-Benson, B.N., Maloney, J., and Borning, A., "An Incremental
  530.    Constraint Solver", Communications of the ACM 33(1):54-63, 1990.
  531.    [Includes a good reading list on the history and applications of
  532.    constraints.]
  533.  
  534.    Freuder, Eugene C., and Richard J. Wallace, "Partial constraint
  535.    satisfaction", Artificial Intelligence 58(1-3):21-70, December 1992.
  536.  
  537.    Van Hentenryck, Pascal, "Constraint Satisfaction in Logic Programming",
  538.    MIT Press, Cambridge, MA, 1989, ISBN 0-262-08181-4.
  539.  
  540.    Jaffar, Joxan and Jean-Louis Lassez, "Constraint Logic Programming", in
  541.    Proceedings of the 14th ACM Symposium on Principles of Programming
  542.    Languages (POPL), Munich, Germany, pages 111-119, 1987.  
  543.    [A longer version appears in Joxan Jaffar and Jean-Louis Lassez,
  544.    "Constraint Logic Programming", Technical Report 86-74, Monash
  545.    University, Victoria, Australia, June 1986.]
  546.  
  547.    Kumar, Vipin, "Algorithms for Constraint-Satisfaction Problems: A
  548.    Survey", AI Magazine 13(1):32-44, 1992.
  549.  
  550.    Mackworth, Alan K., "The logic of constraint satisfaction", Artificial
  551.    Intelligence 58:3-20, 1992.
  552.  
  553.    Meseguer, P., "Constraint Satisfaction Problems: An Overview", AICOM
  554.    2(1):3-17, 1989.
  555.  
  556.    Steele, Guy L., "The Definition and Implementation of A Computer
  557.    Programming Language Based on Constraints", PhD thesis, MIT, 1980.
  558.  
  559.    Tsang, Edward, "Foundations of Constraint Satisfaction", Academic
  560.    Press, 1993. 421 pages, ISBN 0-12-701610-4 ($75). [Good overview.]
  561.  
  562.    Zhang, Ying and Alan K. Mackworth, "Constraint Programming in
  563.    Constraint Nets", in Position Papers for the First Workshop on
  564.    Principles and Practice of Constraint Programming, pages 303-312,
  565.    Newport, RI, April 28-30, 1993.
  566.  
  567.    [See also the articles on Constraint Networks (pages 276-285) and
  568.    Constraint Satisfaction (pages 285-293) in Shapiro's Encyclopedia
  569.    of Artificial Intelligence.]
  570.  
  571. Prolog Implementations and WAMs:
  572.  
  573.    Ait-Kaci, Hassan, "Warren's Abstract Machine: A Tutorial Reconstruction",
  574.    MIT Press, Cambridge, MA. 1991.
  575.    125 pages, ISBN 0-262-51058-8 paper ($17.50), 0-262-01123-9 cloth.
  576.  
  577.    Patrice Boizumault, "The Implementation of Prolog", Princeton
  578.    University Press, Princeton, NJ, 1993.  Translated by Ara M.
  579.    Djamboulian and Jamal Fattouh. ISBN 0-691-08757-1, 357 pages ($49.50).
  580.    [The interpreters developed in the book are available by anonymous
  581.    ftp from cnam.cnam.fr:/pub/Boizumault/. See [2-1].]
  582.  
  583.    Campbell, J.A. (ed):  "Implementations of Prolog", John Wiley, 1984
  584.  
  585.    Peter M. Kogge, "The Architecture of Symbolic Computers", 
  586.    McGraw-Hill, 1991. ISBN 0-07-035596-7.
  587.       Includes sections on memory management, the SECD and
  588.       Warren Abstract Machines, and overviews of the various
  589.       Lisp Machine architectures.
  590.  
  591.    David H. D. Warren: "An Abstract Prolog Instruction Set", Technical Note
  592.    No 309, SRI International, Menlo Park, CA, 1983.
  593.  
  594.    David H. D. Warren, "Logic Programming and Compiler Writing," in
  595.    Software-Practice and Experience 10(2):97-125, 1980.
  596.  
  597.    J. Cohen and T. Hickey, "Parsing and Compiling using Prolog",
  598.    ACM Transactions on Programming Languages and Systems (TOPLAS), 
  599.    9(2):125-163, 1987.
  600.  
  601.    J. Paakki, "Prolog in practical compiler writing", The Computer
  602.    Journal 34(1):64-72, 1991. (But see Letters to the Editor, The
  603.    Computer Journal 35(3):313, 1992.)
  604.  
  605.    Jonathan P. Bowen, "From Programs to Object Code using Logic and Logic
  606.    Programming", in R. Giegerich and S. L. Graham, editors, Code
  607.    Generation -- Concepts, Tools, Techniques, pages 173-192,
  608.    Springer-Verlag, 1992.
  609.  
  610.    Jonathan P. Bowen, "From Programs to Object Code and back again using
  611.    Logic Programming: Compilation and Decompilation", Journal of
  612.    Software Maintenance: Research and Practice 5(4):205-234, December 1993.
  613.  
  614. Parallel Prologs:
  615.  
  616.    Gregory, Steve: "Parallel Logic Programming in Parlog: The Language
  617.    and Its Implementation", Addison-Wesley, 1987, ISBN 0-201-19241-1.
  618.  
  619.    Tick, E.: "Parallel Logic Programming". MIT Press, 1991
  620.  
  621. Miscellaneous:
  622.  
  623.    Deville, Yves: "Logic Programming, Systematic Program Development",
  624.    International Series in Logic Programming, Addison-Wesley, 1990, 338 pages.
  625.    ISBN 0-201-17576-2. 
  626.  
  627.    Wolfram, D.A., "The Clausal Theory of Types", Cambridge Tracts in 
  628.    Theoretical Computer Science {\bf 21}, Cambridge University Press,
  629.    1993.
  630.  
  631. Magazine Articles:
  632.  
  633.    PCAI Magzine, September/October 1993. Article on exploring Prolog,
  634.    showing the first steps to four applications -- an adventure game, an
  635.    object-oriented shell, a tax program, and an animal guessing game.
  636.    An excerpt of this article is available from
  637.       ftp.cs.cmu.edu:/user/ai/lang/prolog/doc/intro/explore.doc 
  638.  
  639.    BYTE Magazine, August 1987. 5 introductory articles on Prolog.
  640.    Applications include logic grammars and simulating a microprocessor.
  641.  
  642.    Uwe Schreiweis: Beredte Logik, Konzepte der 'KI-Sprache" Prolog,
  643.    (Eloquent Logic, Concepts of the AI language Prolog), iX Magazine,
  644.    October 1992, pages 84-90.
  645.  
  646.    Uwe Schreiweis: Basis der Fuenf, Die Sprache Prolog in der Public
  647.    Domain, (Base of the Five, Prolog in the Public Domain), iX Magazine,
  648.    October 1992, pages 92-94.
  649.  
  650.    Uwe Schreiweis: Fuenfte Generation, Kommerzielle Prolog-Systeme,
  651.    (Fifth Generation, Commercial Prolog Systems), iX Magazine, October
  652.    1992, pages 96-102.
  653.  
  654.    Klaus Bothe: Weniger Raum, Speicherplatzbezogener Prolog-Benchmark,
  655.    (Less Space, A Space Oriented Prolog Benchmark), iX Magazine, October
  656.    1992, pages 106-7.
  657.  
  658. Magazines Related to Prolog:
  659.  
  660.    Logic Programming Newsletter (4 issues/yr)
  661.    Included with membership in the Association for Logic Programming 
  662.    ($20 regular, $10 students). For membership information, write to
  663.    Cheryl Anderson (ALP), DoC-ICSTM, 180 Queens Gate, London SW7 2BZ,
  664.    UK, phone +44-71-589-5111 x5011, fax +44-71-589-1552, or send email
  665.    to alp@doc.ic.ac.uk. Contributions are welcome and should be sent
  666.    to Andrew Davidson <ad@cs.mu.oz.au>. Selected articles from the
  667.    newsletter are available from the WWW archive
  668.       http://www.cs.mu.oz.au/~ad/alp/archive.html
  669.  
  670.    AI Communications (4 issues/yr)
  671.    "The European Journal on Artificial Intelligence"  ISSN 0921-7126,
  672.    European Coordinating Committee for Artificial Intelligence.
  673.  
  674.    AI Expert (issued monthly) ISSN 0888-3785, Miller Freeman Publishers
  675.    See a copy of the magazine for list of BBS's in NA. On CompuServe: GO
  676.    AIEXPERT. Regularly reviews Prolog interpreters and compilers.
  677.  
  678.    Expert Systems (issued Feb, May, Aug and Nov) ISSN 0266-4720,
  679.    Learned Information (Europe) Ltd. Subscription: GBP 85 or USD 110
  680.  
  681.    IEEE Expert (issued bimonthly) ISSN 0885-9000, IEEE Computer Society
  682.  
  683.    The Journal of Logic Programming (issued bimonthly), (North-Holland),
  684.    Elsevier Publishing Company, ISSN 0743-1066
  685.  
  686.    New Generation Computing, Springer-Verlag. (LOTS of Prolog in it.)
  687.  
  688. ----------------------------------------------------------------
  689. Subject: [1-4] Prolog and Logic Programming Associations and Journals
  690.  
  691. ASSOCIATION FOR LOGIC PROGRAMMING (ALP)
  692. Members receive the ALP Newsletter.
  693.  
  694. For information on membership, contact
  695.  
  696.    Cheryl Anderson
  697.    ALP Administrative Secretary
  698.    Department of Computing
  699.    Imperial College
  700.    180 Queen's Gate
  701.    London, SW7 2BZ, UK
  702.  
  703.    Email:   csa@doc.ic.ac.uk
  704.    Fax:    +44 71 589 1552
  705.    Phone:  +44 71 589 5111 x5011
  706.  
  707. Newsletter submissions should be sent to
  708.  
  709.    Andrew Davison
  710.    Department of Computer Science
  711.    University of Melbourne
  712.    Parkville
  713.    Melbourne, Victoria 3052
  714.    AUSTRALIA
  715.  
  716.    Email:   ad@cs.mu.oz.au
  717.    Fax:    +61 3 348 1184
  718.    Phone:  +61 3 344 7207 / 5230
  719.    Telex:   AA 35185
  720.  
  721. ----------------------------------------------------------------
  722. Subject: [1-5] FTP Archives and Other Resources
  723.  
  724. The following are achives that contain Prolog-related material, such as
  725. code, interpreters, articles, etc. Most of the archives are ftp sites.
  726. They are listed by domain.name and [IP Address]. To access them and
  727. download programs type at the prompt: 
  728.  
  729.         ftp <site name> (or IP address)
  730.         login: "anonymous",
  731.         password: your own return email address,
  732.         cd <directory>, ls to see files, 
  733.         set binary, 
  734.         get <filename> to transfer file to your system
  735.         stop with quit or exit
  736.  
  737. Deviations from this general scheme may occur but the above should
  738. work in most cases.
  739.  
  740. CMU AI Repository, Prolog Section:
  741.  
  742.    The Prolog Section of the CMU Artificial Intelligence Repository
  743.    (aka "The Prolog Repository") is accessible by anonymous ftp to
  744.       ftp.cs.cmu.edu:/user/ai/lang/prolog/ [128.2.206.173]
  745.    through the AFS directory
  746.       /afs/cs.cmu.edu/project/ai-repository/ai/lang/prolog/
  747.    or by WWW from the URL   
  748.       http://www.cs.cmu.edu:8001/Web/Groups/AI/html/repository.html
  749.    and includes more than 110 megabytes of sources and other materials
  750.    of interest to Prolog programmers, including all freely
  751.    distributable implementations and many programs. The contents of the 
  752.    CMU AI Repository has been keyword indexed to provide convenient
  753.    browsing of the contents.
  754.  
  755.    The repository has standardized on using 'tar' for producing
  756.    archives of files and 'gzip' for compression.
  757.  
  758.    To search the keyword index by mail, send a message to:
  759.       ai+query@cs.cmu.edu
  760.    with one or more lines containing calls to the keys command, such as:
  761.       keys prolog gui
  762.    in the message body.  Keywords may be regular expressions and are
  763.    compared with the index in a case-insensitive conjunctive fashion.  
  764.    You'll get a response by return mail. Do not include anything else in 
  765.    the Subject line of the message or in the message body.  For help on
  766.    the query mail server, include: 
  767.       help
  768.    instead. 
  769.  
  770.    A Mosaic interface to the keyword searching program is in the
  771.    works.  We also plan to make the source code (including indexes) to
  772.    this program available, as soon as it is stable.
  773.  
  774.    Most of the Prolog Section of the AI Repository appears on Prime Time 
  775.    Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
  776.    includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
  777.    (list) for US$60 plus applicable sales tax and shipping and handling
  778.    charges. Payable through Visa, Mastercard, postal money orders in US
  779.    funds, and checks in US funds drawn on a US bank. For more
  780.    information write to Prime Time Freeware, 370 Altair Way, Suite 150,
  781.    Sunnyvale, CA  94086  USA, call 408-433-9662, 408-433-0727 (fax),
  782.    or send email to ptf@cfcl.com.
  783.  
  784.    Contributions of software and other materials are always welcome but
  785.    must be accompanied by an unambiguous copyright statement that grants
  786.    permission for free use, copying, and distribution -- either a
  787.    declaration by the author that the materials are in the public domain,
  788.    that the materials are subject to the GNU General Public License (cite
  789.    version), or that the materials are subject to copyright, but the
  790.    copyright holder grants permission for free use, copying, and
  791.    distribution. (We will tell you if the copying permissions are too
  792.    restrictive for us to include the materials in the repository.)
  793.    Inclusion of materials in the repository does not modify their
  794.    copyright status in any way. Materials may be placed in:
  795.       ftp.cs.cmu.edu:/user/ai/new/
  796.    When you put anything in this directory, please send mail to
  797.       ai+contrib@cs.cmu.edu
  798.    giving us permission to distribute the files, and state whether
  799.    this permission is just for the AI Repository, or also includes
  800.    publication on the CD-ROM version (Prime Time Freeware for AI).
  801.    We would also appreciate if you would include a 0.doc file for your
  802.    package; see /user/ai/new/package.doc for a template. (If you don't
  803.    have the time to write your own, we can write it for you based on
  804.    the information in your package.)
  805.  
  806.    The Prolog Section of the AI Repository is maintained by Mark Kantrowitz 
  807.    <AI.Repository@cs.cmu.edu>. 
  808.  
  809. Artificial Intelligence Programs:
  810.    ai.uga.edu:/pub/ [128.192.12.9]
  811.  
  812.    The University of Georgia AI FTP Library contains public domain
  813.    Prologs, such as Open Prolog and ESL PD Prolog, PrEd (a small text
  814.    editor for Prolog), and some miscellaneous prolog programs in
  815.       ai.uga.edu:/pub/prolog/
  816.    A copy of the programs from the book by Covington, Nute, and Vellino, (see
  817.    the section on Books below), is in
  818.       ai.uga.edu:/pub/prolog.book/
  819.    and the draft ISO standard for prolog is in
  820.       ai.uga.edu:/pub/prolog.standard/
  821.    Some technical reports with accompanying code are in
  822.       ai.uga.edu:/pub/ai.reports/
  823.    Other materials of interest are in
  824.       ai.uga.edu:/pub/natural.language/
  825.       ai.uga.edu:/pub/natural.language.book/
  826.    Maintained by Michael Covington <mcovingt@ai.uga.edu>.
  827.  
  828. ALE:     
  829.    ALE (Attribute Logic Engine), a freeware system written in
  830.    Prolog, integrates phrase structure parsing and constraint logic
  831.    programming with typed feature structures as terms.  Types are
  832.    arranged in an inheritance hierarchy and specified for the features
  833.    and value types for which they are appropriate.  Grammars may also
  834.    interleave unification steps with logic program goal calls (as can be
  835.    done in DCGs), thus allowing parsing to be interleaved with other
  836.    system components.  While ALE was developed to handle HPSG grammars,
  837.    it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II,
  838.    and LOGIN programs, etc. Grammars and programs are specified with a
  839.    version of Rounds-Kasper Attribute Value Logic with macros and
  840.    variables.  ALE supports lexical rules and empty categories for
  841.    grammars, using a bottom-up, all-paths dynamic chart parser. ALE
  842.    supports last call optimization, negation by failure and cuts in
  843.    definite clauses, which may be used independently or integrated into
  844.    grammars. The system is distributed with several sample grammars,
  845.    including a fairly comprehensive implementation of a head-driven
  846.    phrase structure grammar for English. Version 2.0 of ALE is
  847.    available free for research purposes by anonymous ftp from 
  848.       j.gp.cs.cmu.edu:/usr1/carp/ftp/
  849.    as the files ale.*, or from the CMU AI Repository in
  850.       ftp.cs.cmu.edu:/user/ai/lang/prolog/code/parsing/ale/
  851.    For more information write to Bob Carpenter <carp@lcl.cmu.edu> or
  852.    Gerald Penn <penn@lcl.cmu.edu>.
  853.  
  854. ALP-UK Library:
  855.    The best Prolog library currently is the one collected by the ALP-UK
  856.    group. It is available to members at 30 pounds sterling for a Sun
  857.    cartridge or 2 pounds/IBM DOS disk. (non-members maybe, how much?) It
  858.    contains MBs of Prolog systems (including SB Prolog), libraries
  859.    (including the Edinburgh library), benchmarks, grammars, theorem provers,
  860.    object and graphics systems etc. For more information, write to ALP-UK
  861.    Library, Sanjay Raina, Librarian, Dept. of Computer Science, University
  862.    of Bristol, University Walk, Bristol BS8 1TR, UK, call +44 0272 303030
  863.    x3304, or send email to raina@compsci.bristol.ac.uk.
  864.  
  865. CASLOG
  866.    CASLOG (Complexity Analysis System for LOGic) is an experimental
  867.    semi-automatic complexity analysis system for logic programs. It can
  868.    perform the worst-case analysis for complexity measures: argument size
  869.    complexity, number of solutions complexity, and time complexity.
  870.  
  871.    CASLOG extends the techniques developed for analyzing imperative and
  872.    functional languages to deal with nondeterminism and generation of
  873.    multiple solutions via backtracking in logic languages. The analyses
  874.    for different complexity measures are implemented in a unified
  875.    framework and share several common features. First, the predicates in
  876.    a program are processed in an order generated by a bottom-up
  877.    topological sorting over the call graph of the program. Second, the
  878.    complexity function for a predicate is derived from the complexity
  879.    function of its clauses by using the information about the mutual
  880.    exclusion relationships between its clauses. Third, the complexity
  881.    function for a clause is inferred based on the data dependency
  882.    relationships between its literals. Fourth, the complexity functions
  883.    for recursive clauses are in the form of difference equations and are
  884.    transformed into closed form functions using difference equation
  885.    solving techniques. This unified framework can simplify proofs of
  886.    correctness and the implementation of the algorithms.
  887.  
  888.    CASLOG is available by anonymous ftp from cs.arizona.edu:/caslog/. This
  889.    is an alpha distribution, and includes CASLOG version 1.0, a
  890.    preliminary user manual, a paper on CASLOG, and a set of examples.
  891.    For more information, contact Nai-Wei Lin <naiwei@cs.arizona.edu>.
  892.  
  893. Constraint Programming Paper Archive:
  894.    Aarhus University, Denmark, has established an anonymous ftp archive
  895.    for papers on "Constraint Programming" at ftp.daimi.aau.dk:/pub/CLP/.
  896.    For further information, contact Brian H. Mayoh <brian@daimi.aau.dk>.
  897.  
  898. CSP:
  899.  
  900.    Some constraint-related papers by a research group at the
  901.    University of Washington are available by anonymous ftp from 
  902.       june.cs.washington.edu:/pub/constraints/papers/
  903.    The papers from the 1994 Principles and Practice of Constraint
  904.    Programming Workshop are available in
  905.       june.cs.washington.edu:/pub/constraints/papers/ppcp94/
  906.    There are also implementations of several constraint satisfaction
  907.    algorithms and constraint-based systems, including the DeltaBlue and
  908.    SkyBlue algorithms, the Multi-Garnet user interface toolkit, ThingLab
  909.    II, and CoolDraw (a constraint-based drawing system), in
  910.    subdirectories of 
  911.       june.cs.washington.edu:/pub/constraints/code/
  912.    The ftp archive is also accessible via WWW:
  913.       http://web.cs.city.ac.uk/archive/constraints/constraints.html
  914.    All the source code is in the public domain. For more information,
  915.    write to Alan Borning <borning@geoduck.cs.washington.edu>.
  916.  
  917.    C implementations of a number of constraint satisfaction algorithms
  918.    are available by anonymous ftp from
  919.       ftp.cs.ualberta.ca:/pub/ai/csp/
  920.    Get the files README and csplib.tar.Z.  The algorithms include
  921.    variations on backtracking (backjumping, backmarking, chronological
  922.    backtracking, etc.), local consistency preprocessing algorithms (e.g.,
  923.    arc consistency), and random problem generators. For more information,
  924.    write to Peter van Beek <vanbeek@cs.ualberta.ca>.
  925.  
  926. Eden:
  927.    Eden is a Poplog-based AI microworld developed by Simon Perkins,
  928.    Jocelyn Paine and Edmund Chattoe of the Oxford University Artificial
  929.    Intelligence Society. It is intended to serve as a testbed for
  930.    learning and planning programs. Programs written in Pop-11, Prolog,
  931.    Lisp, and ML control a "bug" that lives in a 2-dimensional world. Any
  932.    kind of algorithm may be used to control the bug, including genetic
  933.    algorithms, neural nets, and rule-based systems. Eden consists of a
  934.    grid of cells, each of which can contain objects such as keys, doors,
  935.    boulders and quicksand. Bug's objective is to find and eat a piece of
  936.    food which the simulator has placed somewhere within this grid. To do
  937.    this, Bug must negotiate its way towards the food while dealing
  938.    intelligently with obstacles. Eden's laws of physics allow Bug to take
  939.    one of several different actions when it encounters an object. The
  940.    simulator then works out the consequences of the chosen action on Bug
  941.    and on Eden, and displays these graphically in a Ved window. Bug's
  942.    perceptions are updated to reflect the new state of the world, and the
  943.    cycle repeats. Eden is available by anonymous ftp from the Imperial
  944.    College archive in
  945.       src.doc.ic.ac.uk:/packages/prolog-pd-software/ [146.169.2.10] 
  946.    as the file eden.tar.Z. (Note: This is really a link to the
  947.    directory computing/programming/languages/prolog/pd-software/.)
  948.    Eden includes PopBeast, a simple Prolog bug which can read and
  949.    parse simple commands, extract their meaning, plan how to satisfy
  950.    these commands, and then carry out the plans.
  951.  
  952.    Parts of the current Eden are coded in Pop-11, so porting it to
  953.    Prologs other than Poplog will require some effort. Most of the
  954.    recoding needed is in the grid-world simulator and the definition of
  955.    objects. Send mail to Jocelyn Paine <popx@vax.oxford.ac.uk> if
  956.    you're willing to try this. 
  957.  
  958. FW_Rules:
  959.  
  960.    FW_RULES is a Sicstus Prolog library providing a compiler for forward
  961.    chaining rules.  The implementation is based on a non-state saving
  962.    technique coupled with an indexing mechanism on the working memory
  963.    based on C bitwise operations to achieve efficiency. The library
  964.    supports interoperability between the forward chaining language and
  965.    the underlying Prolog engine.  Terms in the working memory are
  966.    represented as Prolog facts and can be accessed from Prolog to perform
  967.    deduction. It is available by anonymous FTP from
  968.       ftp.cs.unibo.it:/pub/gaspari/fw_rules/
  969.    as the files README and fw_rules.tar.Z. For more information,
  970.    please write to Mauro Gaspari <gaspari@cs.unibo.it>.
  971.  
  972. HDRUG:
  973.  
  974.    Hdrug is an environment to develop logic grammars, parsers, and
  975.    generators for natural languages.  The package comes with a number of
  976.    example grammars, including a Categorial Grammar, a Tree Adjoining
  977.    Grammar, a Unification Grammar in the spirit of Head-driven Phrase
  978.    Structure Grammar, an Extraposition Grammar, a Definite Clause
  979.    Grammar, and a port of the HPSG grammar from Bob Carpenter's ALE
  980.    system. Each of the grammars comes with a set of parsers, such as 
  981.    Earley-like chart parsers, left-corner parsers and head-driven
  982.    parsers. Some grammars come with variants of the head-driven
  983.    generator. The package allows easy comparison of different
  984.    parsers/generators, extensive possibilities of compiling feature
  985.    equations into Prolog terms, graphical (Tk), LaTeX and ordinary Prolog
  986.    output of trees, feature structures and Prolog terms, and plotted
  987.    graphs and tables of statistical information. Hdrug runs in Sicstus
  988.    Prolog and requires ProTcl and Tcl/Tk. It is available by anonymous
  989.    FTP from
  990.       tyr.let.rug.nl:/pub/prolog-app/Hdrug/
  991.    or by WWW from
  992.       http://tyr.let.rug.nl/~vannoord/prolog-app/Hdrug/
  993.    For more information, write to Gertjan van Noord <vannoord@let.rug.nl>.
  994.  
  995. Logic Programming Bibliographies:
  996.    duck.dfki.uni-sb.de:/pub/lp-proceedings/ [134.96.188.92]
  997.  
  998.    The ftp server supports tar'ing on the fly, so if you type "get
  999.    bibtex.tar" you will get a tar'ed version of the "bibtex" directory.
  1000.  
  1001.    BibTeX entries for the proceedings of the following conferences
  1002.    are included: SLP84-87,91, NACLP89-90, ILPS91, ICLP82,84,86-91,93,
  1003.       JICLP92, LP88, RTA89,93, PLILP90-92, ALPUK91, ICOT92, ALP90,92,
  1004.       CADE90,92, CTRS90,92, LICS86-91, UNIF89, EPIA89,91,93, TACS91,
  1005.       TAPSOFT93, EAIA90, FGCS92, FAC, ILPS93, PEPM91,93
  1006.    and the following journals: JLP85-93, JAR91-93, JSC91-93, IANDC82-92.
  1007.  
  1008.    The bibliography is mirrored by the Universidade Nova de Lisboa.
  1009.    In addition, the bibliography can be searched using either WAIS or
  1010.    GOPHER. To search the lp-proceedings using WAIS, use the
  1011.       lp-proceedings.src 
  1012.    wais source, available from the directory of servers. To search the
  1013.    lp-proceedings using GOPHER, point the client to gopher.fct.unl.pt,
  1014.    and follow the directories 
  1015.       "Research/Bibliography/Logic Programming Proceedings".
  1016.    Searching should be easier than retrieving the entire package every
  1017.    time you want to locate a particular article.
  1018.  
  1019.    Send comments and bug reports to rscheidhauer@dfki.uni-sb.de.
  1020.  
  1021. Machine Learning Algorithms Implemented in Prolog:
  1022.  
  1023.    In 1988 the Special Interest Group on Machine Learning of the German
  1024.    Society for Computer Science (GI e.V.) decided to establish a library
  1025.    of PROLOG implementations of Machine Learning algorithms. The library
  1026.    includes - amongst others - PROLOG implementations of Winston's arch, 
  1027.    Becker's AQ-PROLOG, Fisher's COBWEB, Brazdil's generation of 
  1028.    discriminations from derivation trees, Quinlan's ID3, FOIL, IDT,
  1029.    substitution matching, explanation based generalization, inverse 
  1030.    resolution, and Mitchell's version spaces algorithm. 
  1031.    All algorithms are written in Edinburgh Prolog syntax. Most of the
  1032.    algorithms are copyleft under the GNU General Public License. 
  1033.    The programs are currently available via anonymous ftp-server from
  1034.    the GMD: 
  1035.  
  1036.         ftp.gmd.de:/gmd/mlt/ML-Program-Library/ [129.26.8.84]
  1037.  
  1038.    They are also available by surface mail from Thomas Hoppe, 
  1039.    Projektgruppe KIT, Technische Universitaet Berlin, Franklinstr. 28/29,
  1040.    10629 Berlin, Germany. Files will be distributed via MS-DOS formated
  1041.    3.5 inch floppy (double, high and extra-high density),  which should
  1042.    be included with your request. You can also get them by sending an email
  1043.    message to Thomas Hoppe (see below).
  1044.  
  1045.    Send additional PROLOG implementations of Machine Learning
  1046.    Algorithms, complaints about them and detected bugs or problems
  1047.    to Thomas Hoppe, <hoppet@cs.tu-berlin.de>. Send suggestions and
  1048.    complaints about the ftp library to Werner Emde, Gesellschaft
  1049.    fuer Mathematik und Datenverarbeitung, Bonn, <emde@gmd.de>. 
  1050.  
  1051.  
  1052. Natural Language Processing in Prolog:
  1053.  
  1054.    The Prolog and DCG programs from Pereira and Shieber's book, "Prolog
  1055.    and Natural Language Analysis", are available by anonymous ftp from
  1056.    ftp.das.harvard.edu:/pub/shieber/pnla/. See the file README for the
  1057.    conditions under which the material is distributed. If you retrieve
  1058.    the files, please send an email message to the authors letting them
  1059.    know how you plan to use them. For further information, write to
  1060.    Fernando Pereira <pereira@research.att.com> or Stuart Shieber
  1061.    <shieber@das.harvard.edu>.
  1062.  
  1063. Parser:
  1064.    A parser for standard Prolog text written in C is available by
  1065.    anonymous ftp from
  1066.       trappist.elis.rug.ac.be:/pub/prolog/
  1067.    It consists of only three modules (tokenizer, parser, and display
  1068.    routine) and an interface module to integrate it with an existing
  1069.    Prolog system. It is completely deterministic and about 10 times
  1070.    faster than O'Keefe's public domain parser written in Prolog.
  1071.    For more information, write to Koen De Bosschere <kdb@elis.rug.ac.be>.
  1072.  
  1073. Partial Evaluation:
  1074.  
  1075.    Prolog code for the partial evaluator for the flowchart language
  1076.    described in Ch. 4 of "Partial Evaluation and Automatic Program
  1077.    Generation" by Jones, Gomard and Sestoft is available for anonymous
  1078.    ftp from 
  1079.       ftp.diku.dk:/pub/diku/dists/jones-book/ch4_pl.tar.Z
  1080.    All three Futamura projections are implemented. The code has been
  1081.    tested under SWI Prolog 1.5 and 1.7 and should hopefully port to other
  1082.    prologs without too many problems.  For more information, please
  1083.    contact Zerksis Umrigar <umrigar@cs.binghamton.edu>.
  1084.  
  1085. Pleuk Grammar Development System:
  1086.  
  1087.    Pleuk is intended to be a shell for grammar development, in that many
  1088.    different grammatical formalisms can be embedded within it.
  1089.    Grammatical formalisms that currently work with Pleuk include CFG (a
  1090.    simple context-free grammar system), HPSG-PL (a system for developing
  1091.    HPSG-style grammars, produced at Simon Fraser University, Canada, by
  1092.    Fred Popowich, Sandi Kodric and Carl Vogel), Mike (a simple
  1093.    graph-based unification system, enhanced with additional operations
  1094.    for the treatment of free word order proposed by Mike Reape in various
  1095.    publications), SLE (a graph-based formalism enhanced with arbitrary
  1096.    relations in the manner of Johnson & Rosner and Doerre & Eisele.
  1097.    Delayed evaluation is used to compute infinite relations.  This system
  1098.    has been used for the development of several HPSG-style grammars) and
  1099.    Term (a term-based unification grammar system, originally developed
  1100.    for the support of Unification Categorial Grammar of Zeevat, Klein and
  1101.    Calder). Sample grammars are provided for all of these formalisms.
  1102.    Work continues apace on other formalisms, including Bob Carpenter's
  1103.    Ale system for typed feature structures, and Veronica Dahl's Static
  1104.    Discontinuity Grammars.
  1105.  
  1106.    Pleuk requires SICStus prolog version 2.1#6 or later, plus a variety
  1107.    of ancillary programs available free of charge from many FTP servers.
  1108.    Pleuk is available via anonymous FTP from the University of Georgia
  1109.    Artificial Intelligence FTP library
  1110.       ai.uga.edu:/pub/natural.language/
  1111.    as the files pleuk.1.0.tar.Z, pleuk.PSmanuals.tar.Z, and pleuk.README.  
  1112.    Pleuk will also be available shortly from the Natural Language
  1113.    Software Registry, German Research Institute for Artificial
  1114.    Intelligence (DKFI), Saarbruecken.  For more information, send email
  1115.    to pleuk@cogsci.ed.ac.uk.
  1116.  
  1117. Prolog Repository:
  1118.    Established by Jocelyn Paine of Experimental Psychology, Oxford
  1119.    University in 1987. The current catalogue (January 1991) contains
  1120.    30 entries. For catalogue, queries and contributions contact POPX at: 
  1121.       popx%vax.ox.ac.uk@oxmail.ox.ac.uk (internet) or 
  1122.       popx@uk.ac.ox.vax (janet) 
  1123.  
  1124.    FTP access is available through the Imperial College archive at
  1125.       src.doc.ic.ac.uk:/packages/prolog-pd-software/  [146.169.2.10]
  1126.    This is actually a link to the directory
  1127.       /computing/programming/languages/prolog/pd-software/
  1128.       
  1129.    To access it, cd to either of the above directories via
  1130.    anonymous ftp. The file README gives a brief summary of the
  1131.    contents of the directory and CATALOGUE gives a (long!)
  1132.    description of each entry. Entries include the Logic Programming
  1133.    Tutor from Paine's book, the DEC-10 public-domain library, the
  1134.    Linger natural-language corrector, a simple object-oriented
  1135.    add-on for Prolog, graph utilities, among other things.
  1136.  
  1137.    Files in the archive are also available on MS-DOS floppies for a
  1138.    nominal fee to cover the cost of floppies, postage, and packing. 
  1139.  
  1140. Prolog to SQL Compiler:
  1141.    The Prolog to SQL Compiler translates database access requests,
  1142.    which consist of a projection term and a database goal, to the
  1143.    appropriate SQL query. The compiler is written in standard Edinburgh
  1144.    Prolog and has been ported to a number of Prologs. The code posted to
  1145.    comp.lang.prolog works in ECRC's SEPIA Prolog, but should be easily
  1146.    ported to other Prologs. A detailed tech report on the implementation
  1147.    is available by email from draxler@cis.uni-muenchen.de (include
  1148.    your full postal address). The compiler is copyright, but may be used
  1149.    free of charge for non-commercial purposes and redistributed provided
  1150.    the copyright notice is retained intact.
  1151.  
  1152. PSI:
  1153.    PSI is a handy system for the management and retrieval of your
  1154.    personal data, be it addresses, CD collections, or bibliographic
  1155.    references. It is intended for the non-commercial user. It may not be
  1156.    as full-fledged as some data-base systems, but has some features that
  1157.    you won't find in most commercial systems. Also, you may find it
  1158.    easier to set up and faster to use. PSI is useful for a broad range of
  1159.    data. Indexing with descriptors makes searching for the data you need
  1160.    fast, and the interface to other data-base formats (import and export)
  1161.    is quite powerful. PSI was written in LPA MacProlog and is a "genuine
  1162.    'double clickable' Mac application". PSI runs on all Macs with System
  1163.    6 or 7 in 1MB of main memory. As LPA MacProlog isn't yet 32-bit clean,
  1164.    PSI isn't either. Extensive documentation and some examples are
  1165.    included. PSI is available by anonymous ftp from
  1166.    sumex-aim.stanford.edu:/info-mac/app/ as the file psi-23.hqx. It
  1167.    was also available on a recent Nautilus CD-ROM and will be on the
  1168.    first Info-Mac CD-ROM.
  1169.  
  1170. Queens and Knights:
  1171.    Queens and Knights are favorite problems for Prolog programmers.
  1172.    A collection of several implementations is available by anonymous
  1173.    ftp from sics.se:/pub/muse/queensANDknights.tar.Z.uue
  1174.    Write to Roland Karlsson <roland@sics.se> for more information.
  1175.  
  1176. Rubik's Cube:
  1177.    Amzi! Inc., the creators of Cogent Prolog, have made sources to Cube Solver
  1178.    II available from their ftp site, ftp.std.com:/vendors/amzi/.  It is
  1179.    also available from the Prolog Repository at CMU, in
  1180.    ftp.cs.cmu.edu:/user/ai/lang/prolog/code/fun/rubik/.  This Prolog
  1181.    program solves Rubik's Cube.  The sources include a simple scrolling
  1182.    interface that should work in any Edinburgh standard Prolog.  Also
  1183.    included is a ready-made executable for 386 and 486 PCs; it was
  1184.    implemented using Cogent Prolog.  For more information, write to Amzi!
  1185.    Inc. (formerly Amziod) <amzi@world.std.com>, 40 Samuel Prescott Dr.,
  1186.    Stow, MA 01775, Tel: 508-897-7332. Fax: 508-897-2784.
  1187.  
  1188. SEL:
  1189.    SEL is a declarative set processing language. Its main features are
  1190.    subset and equational program clauses, pattern matching over sets,
  1191.    support for efficient iteration and point-wise/incremental computation
  1192.    over sets, the ability to define transitive closures through circular
  1193.    constraints, meta-programming and simple higher-order programming, and
  1194.    a modest user-interface including tracing. The language seems
  1195.    well-suited to a number of problems in graph theory, program analysis,
  1196.    and discrete mathematics. The SEL compiler is written in Quintus
  1197.    Prolog and the run-time system is written in C. It generates WAM-like
  1198.    code, extended to deal with set-matching, memoization, and the novel
  1199.    control structure of the language. SEL is available by anonymous FTP
  1200.    from ftp.cs.buffalo.edu:/users/bharat/SEL2/.  The FTP release comes with a
  1201.    user manual, bibliography of papers (including .dvi files), several
  1202.    sample programs, and source code. For further information, write to
  1203.    Bharat Jayaraman <bharat@cs.buffalo.edu>.
  1204.  
  1205. A public-domain WAM emulator, written in C++ by Herve Touati, is
  1206. available by anonymous FTP from gatekeeper.dec.com:/pub/plan/prolog/ucb/.
  1207.  
  1208. ----------------------------------------------------------------
  1209. Subject: [1-6] Free Object-Oriented Systems for Prolog
  1210.  
  1211. OL(P), Object Layer for Prolog, is an object-oriented extension to
  1212. Prolog.  It provides an object-oriented structuring and reuse
  1213. mechanism for Prolog in a manner that preserves performance and
  1214. semantics. The object-oriented layer is compiled into Prolog without
  1215. introducing any side-effects.  OL(P) takes the view of objects as
  1216. collections of predicates (called methods).  To Prolog, OL(P) 1.1 adds
  1217. objects with methods, data encapsulation, instances, and multiple
  1218. inheritance. Object methods can access Prolog predicates and vice
  1219. versa. The OL(P) incremental compiler translates OL(P) programs to
  1220. Prolog programs that don't need runtime interpretation (e.g., no
  1221. search is needed for inheritance).  OL(P) 1.1 comes with prepared
  1222. installation for SICStus Prolog and QUINTUS Prolog (both on UNIX),
  1223. documentation, simple built-in project management, some libraries,
  1224. and example programs. The source is included, so you can port OL(P)
  1225. to different platforms, different Prolog systems, and different
  1226. logic programming languages. OL(P) is available by anonymous ftp
  1227. from parcftp.xerox.com:/ftp/pub/ol/ [13.1.64.94]. Written by Markus
  1228. P.J. Fromherz <fromherz@parc.xerox.com>. 
  1229.  
  1230. LogTalk is a free object oriented extension to the Prolog programming
  1231. language. It is based on a reflexive architecture intended to provide
  1232. an open system, easily tailored to user needs. It implements simple
  1233. inheritance and a delegation mechanism. Logtalk enables users to
  1234. define new types of slots, each one with its own semantics, that can
  1235. be reused by any object. It includes features for event-based
  1236. programming. This enables the creation of elegant solutions to
  1237. represent and maintain relations that restrict the internal state of
  1238. participating objects. Logtalk (and more information about it) is
  1239. available using the URL
  1240.    http://cygnus.ci.uc.pt/logtalk/logtalk.html
  1241. For more information, write to the author Paulo Moura <pmoura@cygnus.uc.pt>. 
  1242.  
  1243. See Common ESP (CESP) in [2-1] and BeBOP in [2-3].
  1244.  
  1245. ----------------------------------------------------------------
  1246. Subject: [1-7] Commercial Object-Oriented Systems for Prolog
  1247.  
  1248. LAP is an object-oriented system by Elsa. For more information, write
  1249. to Elsa Software, La Grange Dame Rose, 6 ave du Marechal Juin, 92366
  1250. Meudon-La-Foret Cedex, France, call +33 (1) 46 30 24 55, fax +33 (1)
  1251. 46 30 55 26, or send email to elsa!lap@uunet.uu.net.
  1252.  
  1253. SPIRAL is an object oriented system by CRIL for Sun3 and Sun4 under
  1254. Unix. For more information, write to CRIL, Conception et Realisation,
  1255. Industriel de Logiciel, 146 bd de Valmy 92707, Colombes Cedex, France,
  1256. call +33 1 47 69 53 67, or fax +33 1 47 69 53 99.
  1257.  
  1258. See also LPA Prolog ++ in [2-2].
  1259.  
  1260. ----------------------------------------------------------------
  1261. Subject: [1-8]  The Prolog 1000 Database
  1262.  
  1263. The Prolog 1000 is a database of real Prolog applications being
  1264. assembled in conjunction with the Association for Logic Programming
  1265. (ALP) and PVG. The aim is to demonstrate how Prolog is being used in
  1266. the real world and it already contains over 500 programs with well
  1267. over 2 million lines of code. The database is available for research
  1268. use in SGML format from the Imperial College archive
  1269.    src.doc.ic.ac.uk:/packages/prolog-progs-db/prolog1000.v1.gz
  1270. If you have or know about a program that might qualify for inclusion,
  1271. send an email message to Al Roth (alroth@cix.compulink.co.uk) for an
  1272. electronic entry form which only takes a few minutes to complete. Or
  1273. write to Prolog 1000, PO Box 137, Blackpool, Lancashire, FY2 0XY,
  1274. U.K., Fax: +44 253 53811 Telephone: +44 253 58081. (Floppy disks for
  1275. PC or Mac in text form are also welcome, and paper entries may also be
  1276. sent). Queries may also be addressed to: Chris Moss
  1277. (cdsm@doc.ic.ac.uk), Leon Sterling (leon@alpha.ces.cwru.edu).
  1278.  
  1279. ----------------------------------------------------------------
  1280. Subject: [1-9] X-Windows Interfaces
  1281.  
  1282. PI:
  1283.    PI is an interface between Prolog applications and the X Window System
  1284.    that aims to be independent from the Prolog engine, provided that it
  1285.    has a Quintus-style foreign function interface (such as SICStus, YAP).
  1286.    It is mostly written in Prolog and is divided in two libraries: (1)
  1287.    Edipo, a low-level interface to the Xlib functions, and (2) Ytoolkit,
  1288.    a high-level user interface toolkit that allows you to create and
  1289.    manage graphical objects, define new classes of objects, and handle
  1290.    user interaction. PI is available by anonymous ftp from
  1291.    ftp.ncc.up.pt:/pub/prolog/pi_1.2.tar.gz and includes documentation
  1292.    and some demos. Also see ytoolkit.tar.Z. PI has been tested in
  1293.    Quintus Prolog 3.1.1 and SICStus 2.1 #8. Send questions, comments,
  1294.    and bug reports to Ze' Paulo Leal, Universidade de Porto, Portugal,
  1295.    <zp@ncc.up.pt>. 
  1296.  
  1297. XWIP: 
  1298.    ftp.x.org:/contrib/xwip.tar.Z  (formerly export.lcs.mit.edu)
  1299.    ftp.uu.net:/X/contrib/xwip.tar.Z
  1300.  
  1301.    XWIP is an X Windows interface for PROLOG.
  1302.  
  1303. XPCE:
  1304.    XPCE is an object-oriented X-window interface toolkit for symbolic
  1305.    programming languages (Prolog and Lisp), offering a high level of
  1306.    abstraction for communication with X11, Unix processes, Unix
  1307.    networking facilities (sockets) and Unix files. XPCE's built-in
  1308.    classes (about 150) are mostly written in C.  The XPCE/Prolog
  1309.    interface allows the user to create and manipulate instances of these
  1310.    classes.  The user can also create new XPCE classes from Prolog.
  1311.    XPCE's window related classes provide various styles of menus,
  1312.    primitive graphical objects, compound graphical objects and Emacs
  1313.    oriented programmable text manipulation windows. The distribution
  1314.    contains several demo programs, including a diagram drawing tool
  1315.    (PceDraw), an animation demo, an Epoch-like editor, a graphical
  1316.    interface to Unix ispell, and an online hyper-text manual for XPCE
  1317.    itself.  A demo version of XPCE/SWI-Prolog for Linux may be obtained
  1318.    by anonymous ftp from swi.psy.uva.nl:/pub/xpce/linux/ [145.18.114.17].
  1319.    The non-demo versions (for SWI-Prolog, SICStus Prolog, Lucid Common
  1320.    Lisp and LispWorks) require filling out a license and paying a fee
  1321.    (see the file pub/xpce/INFO).  To be added to the mailing list
  1322.    xpce@swi.psy.uva.nl send mail to xpce-request@swi.psy.uva.nl. Send
  1323.    bugs to xpce-bugs@swi.psy.uva.nl. 
  1324.  
  1325.    ProWindows 3 is a commercial version of XPCE for Quintus Prolog. 
  1326.    For further information, write to Simon Heywood, AI International Ltd, 
  1327.    The Chapel, Park View House, 1 Park View Road, Berkhamsted, Herts, 
  1328.    HP4 3EY, phone +44-(0)442-876722 (Sales Hotline +44 (0)442 876448),
  1329.    fax +44-(0)442-877997, or send email to sheywood@aiil.co.uk.
  1330.  
  1331. ProTcl:
  1332.  
  1333.    ProTcl (pronounced pro-tickle) is a Prolog interface to Tcl/Tk. It has
  1334.    a very simple and lightweight interface, which allows one to evaluate
  1335.    Tcl expressions from Prolog. It defines the tcl_eval/1,2 predicate
  1336.    which passes the Tcl expressions to the Tcl interpreter. It has been
  1337.    tested on ECLiPSe and SICStus, on a Sparc 10. ProTcl is available
  1338.    by anonymous ftp from 
  1339.       ftp.ecrc.de:/pub/eclipse/progs/protcl/
  1340.    The ProTCL home page is
  1341.       http://www.ecrc.de/eclipse/html/protcl.html
  1342.    Send comments and suggestions to Micha Meier <micha@ecrc.de>.
  1343.  
  1344. ----------------------------------------------------------------
  1345. Subject: [1-10] Is there a straight-forward way of compiling Prolog to C?
  1346.  
  1347. Two methods of compiling Prolog to C have been reported in the
  1348. literature:
  1349.    -  WAM-based approaches
  1350.    -  Continuation-based approaches
  1351.  
  1352. The WAM-based approach compiles Prolog programs into a sequence of C
  1353. function or macro calls to WAM instructions. A brief description of
  1354. this method and some results are given in the paper:
  1355.  
  1356.    Michael R. Levy and R. Nigel Horspool, "Translating Prolog to C: a
  1357.    WAM-based Approach", in Proceedings of the Second Compulog Network
  1358.    Area Meeting on Programming Languages, and the Workshop on Logic
  1359.    Languages in Pisa, May 1993. (Available by anonymous ftp from 
  1360.    csr.uvic.ca:/pub/mlevy/.)
  1361.  
  1362. The best tutorial for writing a WAM-based compiler or WAM emulator is
  1363. Hassan Ait-Kaci's book, "Warren's Abstract Machine: A Tutorial
  1364. Reconstruction" (see [1-3] above). 
  1365.  
  1366. A "quick-and-dirty" method is to implement the WAM functions as described
  1367. in Ait-Kaci's tutorial, to label each call with a C case label, and then throw
  1368. a giant switch(P) statement around the entire sequence of calls, where P
  1369. is the WAM program counter.  On return from any instruction that modifies
  1370. P, a "goto Start" must be inserted. (This method was posted by Rob
  1371. Scott, <rbs@aisb.ed.ac.uk>, based on the JANUS papers by Saraswat.)
  1372.  
  1373. This strategy will work, but does not allow you to modularize your
  1374. prolog program. Predicates in prolog seem to generate 8 to 15 WAM
  1375. instructions per clause, so (assuming very roughly a clause per
  1376. line)you might expect your 1,000 line program to expand to a switch
  1377. statement containing up to 15,000 lines. Some C compilers can't handle
  1378. such a big switch statement.
  1379.  
  1380. Levy and Horspool solve this problem by compiling each Prolog
  1381. predicate to a seperate C function. A dispatch loop mechanism is used
  1382. to call the C functions. C switch statements are used only inside the
  1383. functions.  A predicate that calls another predicate sets P to contain
  1384. the address of the C function that implements the called predicate,
  1385. (and sets another register called W in their scheme) and then returns
  1386. to the dispatcher instead of calling the predicate. This bypasses the
  1387. C run-time stack.  This lets one exploit WAM optimizations (like LCO)
  1388. and yet retain the ability to create many modules. Their system
  1389. performs well when compared with byte-code compilers, but translated
  1390. code runs slower than code produced by native code compilers.  On the
  1391. other hand, it outputs portable ANSI C that can run on any machine
  1392. with a C compiler.
  1393.  
  1394. Other approaches to translating to C use continuations. The idea here
  1395. is to translate every Prolog predicate to a C function that has
  1396. an additional argument, namely a continuation function. If the function
  1397. fails, it simply returns, but if it succeeds, it executes the continuation.
  1398. When the function regains control from the continuation, it can then try
  1399. to generate a new solution. Here are two references
  1400. that describe systems built using continuations:
  1401.  
  1402.    J. L. Weiner and S. Ramakrishnan, "A Piggy-Back Compiler for Prolog",
  1403.    in Proceedings of SIGPLAN T88 Conference on Programming Language
  1404.    Design and Implementation, Atlanta, Georgia, 1988, pages 288-296.
  1405.  
  1406.    J. L. Boyd and G. M. Karam, "Prolog in C", Carleton University,
  1407.    Ottawa, 1988. 
  1408.  
  1409. Oliver Ridoux <Olivier.Ridoux@irisa.fr> reports that a
  1410. continuation-based approach works well when used to compile
  1411. LambdaProlog. His scheme translates every predicate into a function
  1412. that uses and modifies the success and failure continuations, with
  1413. recursion in the predicate becoming iteration in the continuation
  1414. passing mechanism. Inside the function one uses whichever intermediate
  1415. machine one fancies. Clauses within the function can be either the
  1416. branches of a switch statement or simply labelled when using a C
  1417. system that can store labels. This approach can still generate
  1418. monstrous C programs that blow up the C compiler, but the C programs
  1419. aren't as large as those generated by a one module to a function
  1420. scheme. Approaches that replace recursion in a predicate with
  1421. recursion in a function tend to overload the C stack and lead to
  1422. sloppy memory management.  Two technical reports describing Ridoux's
  1423. approach are available by anonymous ftp from 
  1424.    ftp.irisa.fr:/
  1425. as pm/*.ps.Z and mailv06/*.ps.Z.
  1426.  
  1427. Michael Covington <mcovingt@ai.uga.edu> points out that a very simple
  1428. approach is to write a Prolog interpreter in C, then store the Prolog
  1429. program in that program's data! This will, of course, execute slowly.
  1430. One might imagine all sorts of other schemes. For example, a query
  1431. could be treated as a stack of "suspensions" (with the left-most goal
  1432. on top).  The top suspension is executed by selecting the appropriate
  1433. clause (possibly using indexing), and then, if necessary, pushing new
  1434. suspensions on the stack (the body of the clause whose head unified
  1435. with the current suspension).
  1436.  
  1437. Another question to ask is this: Is there any reason why you should want to
  1438. convert Prolog to C at all? George Saab of Quintus Corp. pointed out that,
  1439. with Quintus Prolog, you can create a standard .o file from a Prolog file,
  1440. which can then be linked with your other .o files to create an executable.
  1441. What's more, your Prolog code can be called from C code and vice versa.
  1442.  
  1443. On ther hand, the advantage of distributing "Prolog objects" as C rather than
  1444. .o files is portability.
  1445.  
  1446. M. Gaspari  and G. Attardi describe an approach to translating Prolog to C
  1447. based on the provision of a common runtime architecture. This is
  1448. described in 
  1449.  
  1450.    G. Attardi and M. Gaspari, "Multilanguage Interoperability", in
  1451.    Proceedings of The 3rd International Symposium, PLILP 91, 
  1452.    Springer Verlag, LNCS #528, 1991.
  1453.  
  1454. [Note: Thanks to Michael Levy, Department of Computer Science,
  1455. University of Victoria, <mlevy@csr.uvic.ca>, for writing this section.]
  1456.  
  1457. ----------------------------------------------------------------
  1458. Subject: [1-11] WAM emulators and tracers
  1459.  
  1460. Johan Bevemyr's Luther-based WAM-tracer is available by anonymous ftp
  1461. from Uppsala University in Sweden. It includes a simple compiler from
  1462. Prolog to WAM code and a low-level WAM code tracer written in
  1463. emacs-lisp.  The tracer splits the screen into regions to show
  1464. data-areas, registers, and so on. You can then step through running
  1465. the code. The tracer is available by anonymous ftp from
  1466.    ftp.csd.uu.se:/pub/WAM-tracer/luther.tar.Z
  1467. Documentation on the tracer is included in the distribution.  The
  1468. emulator is in the /pub/WAM-emulator/ directory (and runs in SICStus
  1469. Prolog).  For more information, contact Johan Bevemyr
  1470. <bevemyr@csd.uu.se> or <bevemyr@sics.se>.
  1471.  
  1472. ----------------------------------------------------------------
  1473. Subject: [1-12] What is the Basic Andorra Model and AKL?
  1474.  
  1475. The Basic Andorra Model is a way to execute definite clause programs
  1476. that allows dependent and-parallelism to be exploited transparently.
  1477. It also supports nice programming techniques for search programs.  The
  1478. idea is to first reduce all goals that match at most one clause.  When
  1479. no such goal exists, any goal (e.g., the left-most) may be chosen.
  1480. The BAM was proposed by David H. D. Warren, and his group at Bristol
  1481. has developed an AND-OR parallel implementation called Andorra-I,
  1482. which also supports full Prolog.  See, for example, 
  1483.  
  1484.    Seif Haridi and Per Brand, "Andorra Prolog, an integration of Prolog
  1485.    and committed choice languages", in Proceedings of the FGCS 1988,
  1486.    ICOT, Tokyo, 1988.
  1487.  
  1488.    Vitor Santos Costa, David H. D. Warren, and Rong Yang, "Two papers on
  1489.    the Andorra-I engine and preprocessor", in Proceedings of the 8th
  1490.    ICLP. MIT Press, 1991.
  1491.  
  1492.    Steve Gregory and Rong Yang, "Parallel Constraint Solving in
  1493.    Andorra-I", in Proceedings of FGCS'92. ICOT, Tokyo, 1992.
  1494.  
  1495. AKL (Andorra Kernel Language) is a concurrent constraint programming
  1496. language that supports both Prolog-style programming and committed
  1497. choice programming.  Its control of don't-know nondeterminism is based
  1498. on the Andorra model, which has been generalised to also deal with
  1499. nondeterminism encapsulated in guards and aggregates (such as bagof)
  1500. in a concurrent setting. See, for example,
  1501.  
  1502.    Sverker Janson and Seif Haridi, "Programming Paradigms of the Andorra
  1503.    Kernel Language", in Proceedings of ILPS'91. MIT Press, 1991.
  1504.  
  1505.    Torkel Franzen, "Logical Aspects of the Andorra Kernel Language", SICS
  1506.    Research Report R91:12, Swedish Institute of Computer Science, 1991.
  1507.  
  1508.    Torkel Franzen, Seif Haridi, and Sverker Janson, "An Overview of the
  1509.    Andorra Kernel Language", In LNAI (LNCS) 596, Springer-Verlag, 1992.
  1510.  
  1511.    Sverker Janson, Johan Montelius, and Seif Haridi, "Ports for Objects
  1512.    in Concurrent Logic Programs", in Research Directions in Concurrent
  1513.    Object-Oriented Programming, MIT Press, 1993 (forthcoming).
  1514.  
  1515. The above papers on AKL are available by anonymous ftp from 
  1516.    sics.se:/pub/ccp/papers/
  1517. An (as yet non-released) prototype implementation of AKL is available
  1518. for research purposes (contact sverker@sics.se). 
  1519.  
  1520. ----------------------------------------------------------------
  1521. Subject: [1-13] What is Constraint Logic Programming?
  1522.  
  1523. Constraint Logic Programming (CLP) augments Prolog by adding
  1524. constraints to the clauses. The CLP implementation solves goals in the
  1525. same manner as Prolog, but also merges the constraints associated with
  1526. each rule. If the merge succeeds, the successful goal and the
  1527. corresponding constraints are returned. If, however, the constraints
  1528. are mutually exclusive, the solution fails.
  1529.  
  1530. ----------------------------------------------------------------
  1531. Subject: [1-14] How do you write portable programs in Prolog?
  1532.  
  1533. The de-facto standard syntax for Prolog is known as the Edinburgh
  1534. standard. It is based on the syntax of DEC-10 Prolog, an early Prolog
  1535. implementation developed at the University of Edinburgh.
  1536. See question [1-1] for information on the draft ISO standard for
  1537. Prolog.
  1538.  
  1539. Unfortunately, not every Prolog implementation is Edinburgh compatible.
  1540. There also isn't any notion of read-conditionalization, like #+ and #-
  1541. *features* in Common Lisp. 
  1542.  
  1543. One option is to use the C preprocessor on Prolog code before loading
  1544. it into Prolog.  Or you could use term-expansion to roll your own
  1545. conditional compilation system. Term expanding a clause to []
  1546. effectively discards it.
  1547.  
  1548. Another possibility is to conditionalize the execution instead of the
  1549. compilation. The user would have to uncomment a line like one of the
  1550. following, 
  1551.    % this_is(quintus).
  1552.    % this_is(sicstus).    
  1553. and the code would have to test for the proper literal
  1554.    a :- this_is(quintus), blah, blah, blah.
  1555.    a :- this_is(sicstus), blah, blah, blah.
  1556. at a slight cost in efficiency. (If you first feed the program through
  1557. a general partial evaluator, you'll get an equivalent program without
  1558. the inefficiency. Partial evaluation is in some sense a more powerful
  1559. and semantically cleaner form of source preprocessing. Given
  1560.         <head> :- <condition>, <rest of body>.
  1561. If <condition> is always false, we can safely drop the clause. If
  1562. <condition> is always true, we can drop it from any clauses that
  1563. include it.) 
  1564.  
  1565. Another possibility is Richard O'Keefe's environment package for
  1566. Prolog. It was posted to comp.lang.prolog on 1-SEP-94; a copy can be
  1567. found in
  1568.    ftp.cs.cmu.edu:/user/ai/lang/prolog/code/ext/env/env.pl
  1569.  
  1570. ----------------------------------------------------------------
  1571. Subject: [1-15] World-Wide Web (WWW) Resources
  1572.  
  1573. The World Wide Web (WWW) is a hypermedia document that spans the
  1574. Internet.  It uses the http (HyperText Transfer Protocol) for the
  1575. light-weight exchange of files over the Internet.  NCSA Mosaic is a
  1576. World Wide Web browser developed at the National Center for
  1577. Supercomputing Applications (NCSA). 
  1578.  
  1579. Mosaic's popularity derives, in part, from its ability to communicate
  1580. using more traditional Internet protocols like FTP, Gopher, WAIS, and
  1581. NNTP, in addition to http. Mosaic can display text, hypertext links,
  1582. and inlined graphics directly. When Mosaic encounters a file type it
  1583. can't handle internally, such as Postscript documents, mpeg movies,
  1584. sound files, and JPEG images, it uses an external viewer (or player)
  1585. like Ghostscript to handle the file. Mosaic also includes facilities
  1586. for exploring the Internet. In other words, Mosaic is an multimedia
  1587. interface to the Internet.
  1588.  
  1589. The hypertext documents viewed with Mosaic are written in HTML
  1590. (HyperText Markup Language), which is a subset of SGML (Standard
  1591. Generalized Markup Language).  All that is needed is just a few more
  1592. improvements, such as the ability to format tables and mathematics,
  1593. and a WYSIWYG editor, for HTML to greatly facilitate electronic
  1594. journals and other publications.
  1595.  
  1596. NCSA Mosaic for the X Window System is available by anonymous ftp from  
  1597.    ftp.ncsa.uiuc.edu:/Mosaic/
  1598. as source code and binaries for Sun, SGI, IBM RS/6000, DEC Alpha OSF/1, DEC
  1599. Ultrix, and HP-UX. Questions about NCSA Mosaic should be directed to 
  1600. mosaic-x@ncsa.uiuc.edu (X-Windows version), mosaic-mac@ncsa.uiuc.edu
  1601. (Macintosh), and mosaic-win@ncsa.uiuc.edu (Microsoft Windows).
  1602.  
  1603. An automatically generated HTML version of the PRG is accessible by
  1604. WWW as part of the AI-related FAQs Mosaic page. The URL for this
  1605. resource is
  1606.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/top.html
  1607. The direct URL for the PRG is
  1608.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
  1609.  
  1610. The remainder of this section lists WWW resources of interest to Prolog
  1611. and logic programming researchers, students, and practitioners.
  1612.  
  1613. Constraints:
  1614.  
  1615.    The newsgroup comp.constraints has an ftp archive and WWW home page:
  1616.       ftp.cs.city.ac.uk:/pub/constraints
  1617.       http://web.cs.city.ac.uk/archive/constraints/constraints.html
  1618.  
  1619. Logic Programming:
  1620.  
  1621.     http://www.comlab.ox.ac.uk/archive/logic-prog.html
  1622.     Jonathan Bowen <Jonathan.Bowen@comlab.ox.ac.uk>
  1623.  
  1624.     http://www.watson.ibm.com/watson/logicpgm/
  1625.     [Logic Programming at IBM Research]
  1626.     Peter Reintjes <reintjes@watson.ibm.com>
  1627.  
  1628.    http://ps-www.dfki.uni-sb.de/~vanroy/impltalk.html
  1629.    ["Issues in Implementing Logic Languages" -- overview of
  1630.     state-of-art in Prolog implementation.] 
  1631.    Peter Van Roy <vanroy@dfki.uni-sb.de>
  1632.  
  1633.    http://www.informatik.uni-trier.de/~ley/db/index.html
  1634.    [Table of Contents from Conferences and Journals in the fields
  1635.     of database systems and logic programming.]
  1636.    Michael Ley <ley@nigra.Uni-Trier.DE>
  1637.  
  1638. Abstract Interpretation for LP Bibliography:
  1639.  
  1640.    http://www.labri.u-bordeaux.fr/~corsini/Public/Reports/abint-biblio.ps
  1641.    200 entries so far. 
  1642.    Marc-Michel Corsini <corsini@labri.u-bordeaux.fr>
  1643.  
  1644. ----------------------------------------------------------------
  1645. Subject: [1-16] Prolog Job Postings
  1646.  
  1647. The PROLOG-JOBS mailing list exists to help programmers find Prolog
  1648. programming positions, and to help companies with Prolog programming
  1649. positions find capable Prolog programmers. (Prolog here means Prolog-like
  1650. languages, including logic programming languages.)
  1651.  
  1652. Material appropriate for the list includes Prolog job announcements and
  1653. should be sent to ai+prolog-jobs@cs.cmu.edu. Resumes should NOT be sent to
  1654. the list. 
  1655.  
  1656. [Note: The 'ai+' part of the mailing list name is used for directing
  1657. submissions to the appropriate mail-server. The list is NOT restricted
  1658. to AI-related Prolog jobs -- all Prolog job announcements are welcome.]
  1659.  
  1660. As a matter of policy, the contents of this mailing list is
  1661. considered confidential and will not be disclosed to anybody.
  1662.  
  1663. To subscribe, send a message to ai+query@cs.cmu.edu with
  1664.    subscribe prolog-jobs <First Name> <Last Name>, <Affiliation/Organization>
  1665. in the message body.
  1666.  
  1667. (If your mailer objects to the "+", send subscription requests to
  1668. "ai+query"@cs.cmu.edu, job announcements to "ai+prolog-jobs"@cs.cmu.edu, 
  1669. etc.) 
  1670.  
  1671. For help on using the query server, send mail to ai+query@cs.cmu.edu with
  1672.    help
  1673. in the message body.
  1674.  
  1675. Job postings sent to the list are automatically archived in
  1676.    ftp.cs.cmu.edu:/user/ai/jobs/prolog/
  1677.  
  1678. If you have any other questions, please send them to ai+@cs.cmu.edu
  1679.  
  1680. ----------------------------------------------------------------
  1681. Subject: [1-17] Is Prolog really used in Windows NT?
  1682.  
  1683. Yes. 
  1684.  
  1685. For more information, see
  1686.  
  1687.    Dennis Merritt, "Extending C with Prolog", Dr Dobb's Journal, 
  1688.    August 1994, pages 78-82 and 102, 104. 
  1689.  
  1690.    D. Hovel, "Small Prolog and Windows NT Networking", Dr Dobb's Journal,
  1691.    August 1994, page 80.
  1692.  
  1693. ----------------------------------------------------------------
  1694. Subject: [1-18] History of Prolog
  1695.  
  1696. Van Roy, Peter, "1983-1993: The Wonder Years of Sequential Prolog
  1697. Implementation," DEC Paris Research Laboratory, Research Report 36,
  1698. December 1993.
  1699.  
  1700. ----------------------------------------------------------------
  1701. Subject: [1-A] Acknowledgements
  1702.  
  1703. The original version of this guide (Version 0.6, Dec 11, 1991) was
  1704. compiled by Dag Wahlberg, Uppsala University, Sweden
  1705. <dagwag@csd.uu.se>, and published in the 5(1) issue of the ALP
  1706. Newsletter (February 1992).  Other people who helped with the
  1707. compilation include Chris Moss <cdsm@doc.ic.ac.uk>, Mats Carlsson,
  1708. SICS <matsc@sics.se>, Michael A. Covington <mcovingt@ai.uga.edu>,
  1709. Jocelyn Paine <popx@vax.ox.ac.uk>, Per G. Bilse, PDC <pdev@pdc.dk>,
  1710. David Cohen, BIM Systems Inc <dc@bim.com>, Mark Korsloot
  1711. <mark@logic.et.tudelft.nl>, and David W. Talmage
  1712. <talmage@luvthang.aquin.ori-cal.com>.
  1713.  
  1714. Thanks also to Jamie Andrews <jamie@cs.sfu.ca>.
  1715.  
  1716. ----------------------------------------------------------------
  1717. ;;; *EOF*
  1718. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!uhog.mit.edu!nntp.club.cc.cmu.edu!cantaloupe.srv.cs.cmu.edu!mkant
  1719. From: mkant+@cs.cmu.edu (Mark Kantrowitz)
  1720. Newsgroups: comp.lang.prolog,comp.object.logic,news.answers,comp.answers
  1721. Subject: FAQ: Prolog Implementations 2/2 [Monthly posting]
  1722. Supersedes: <PRG_2_792662434@CS.CMU.EDU>
  1723. Followup-To: poster
  1724. Date: 13 Mar 1995 08:03:00 GMT
  1725. Organization: School of Computer Science, Carnegie Mellon University
  1726. Lines: 1561
  1727. Approved: news-answers-request@MIT.Edu
  1728. Distribution: world
  1729. Expires: 24 Apr 1995 08:00:33 GMT
  1730. Message-ID: <PRG_2_795081633@CS.CMU.EDU>
  1731. References: <PRG_1_795081633@CS.CMU.EDU>
  1732. Reply-To: mkant+prg@cs.cmu.edu
  1733. NNTP-Posting-Host: glinda.oz.cs.cmu.edu
  1734. Xref: senator-bedfellow.mit.edu comp.lang.prolog:12371 comp.object.logic:389 news.answers:39807 comp.answers:10629
  1735.  
  1736. Archive-name: prolog/resource-guide/part2
  1737. Last-Modified: Thu Mar  9 15:25:48 1995 by Mark Kantrowitz
  1738. Version: 1.26
  1739. Maintainer: Mark Kantrowitz <mkant+prg@cs.cmu.edu>
  1740. URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
  1741. Size: 85173 bytes, 1569 lines
  1742.  
  1743. ;;; ****************************************************************
  1744. ;;; Prolog Resource Guide ******************************************
  1745. ;;; ****************************************************************
  1746. ;;; prg_2.faq
  1747.  
  1748. This is part two of the Prolog Resource Guide. This part lists
  1749. available Prolog, logic programming, and constraint system
  1750. implementations, both free and commercial.
  1751.  
  1752. Send suggestions and comments to: mkant+prolog-guide@cs.cmu.edu
  1753.  
  1754. Prolog Implementations (Part 2):
  1755.   [2-0]  General information about Prolog Implementations
  1756.  
  1757.   [2-1]  Free Prolog Implementations
  1758.   [2-2]  Commercial Prolog Implementations
  1759.  
  1760.   [2-3]  Free Parallel Prolog Implementations
  1761.   [2-4]  Commercial Parallel Prolog Implementations
  1762.  
  1763.   [2-5]  Free Constraint Systems
  1764.   [2-6]  Commercial Constraint Systems
  1765.  
  1766.   [2-7]  Free Logic Programming Systems
  1767.   [2-8]  Commercial Logic Programming Systems
  1768.  
  1769.   [2-9]  Other Commercial Prolog Products
  1770.  
  1771.   [2-10] Prolog extensions, meta-interpreters, and pre-processors
  1772.  
  1773. Search for [#] to get to topic number # quickly. In newsreaders which
  1774. support digests (such as rn), [CTRL]-G will page through the answers.
  1775.  
  1776. ----------------------------------------------------------------
  1777. Subject: [2-0] General information about Prolog Implementations
  1778.  
  1779. When comparing free and commercial Prolog implementations, a rule of
  1780. thumb is that commercial prolog implementations are often more robust
  1781. and better supported than the public domain and free prolog
  1782. implementations. Commercial Prolog implementations tend to have better
  1783. debugging facilities. Many of the commercial Prolog vendors offer
  1784. educational discounts to universities, and some of the commercial
  1785. Prolog implementations are rather inexpensive. 
  1786.  
  1787. When considering a commercial Prolog implementation, be sure to ask
  1788. for current pricing information. Although we try to keep this
  1789. information up to date, there is no guarantee that it hasn't changed
  1790. in the interim. If you find that the information has changed, please
  1791. ask the vendor to send us current information.
  1792.  
  1793. Some research institutions make their Prolog implementations available
  1794. for a fee. We have included those implementations in the lists of
  1795. commercial Prolog implementations.
  1796.  
  1797. The Prolog Vendors' Group may be contacted by email via the Secretary,
  1798. Al Roth, at <alroth@cix.compulink.co.uk>.
  1799.  
  1800. Remember when ftping compressed or compacted files (.Z, .arc, .fit,
  1801. .zip, .z, etc.) to use binary mode for retrieving the files.
  1802.  
  1803. Files that end with a .z suffix were compressed with the patent-free
  1804. gzip (no relation to zip). Source for gzip is available from:
  1805.    prep.ai.mit.edu:/pub/gnu/
  1806. as the files gzip-1.2.3.shar, gzip-1.2.3.tar,or gzip-1.2.3.msdos.exe.
  1807.  
  1808. ----------------------------------------------------------------
  1809. Subject: [2-1] Free Prolog Implementations
  1810.  
  1811. The following list of free Prolog and logic programming implementations
  1812. excludes those listed in the comp.lang.lisp and comp.lang.scheme FAQs
  1813. (i.e., Prolog interpreters written in Lisp and Scheme).
  1814.  
  1815. Most of these Prolog implementations are available from the CMU AI
  1816. Repository, in the directory
  1817.    ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/
  1818.  
  1819.  
  1820. A.D.A. Public Domain Prolog:
  1821.    aisun1.ai.uga.edu:ai.prolog/adapdpro.zip
  1822.  
  1823.    A rather slow implementation of Prolog for MS-DOS systems, originally
  1824.    a product of Automata Design Associates (now defunct), 1570
  1825.    Arran Way, Dresker, PA 19025, 215-335-5400. 
  1826.  
  1827. Aquarius Prolog:
  1828.    Aquarius Prolog is a high-performance, portable Prolog implementation
  1829.    developed since 1989 by the Aquarius Project at UC/Berkeley, the Advanced
  1830.    Computer Architecture Laboratory (ACAL) at the University of Southern
  1831.    California (USC), and at Digital Equipment Corporation's Paris Research
  1832.    Laboratory. The developers are Tom Getzinger, Ralph Clarke Haygood, and
  1833.    Peter Van Roy. Aquarius Prolog includes:
  1834.  
  1835.       - A compiler with global analysis.  The compiler is built around the
  1836.         Berkeley Abstract Machine (BAM) execution model for Prolog. BAM
  1837.         retains desirable features of the Warren Abstract Machine (WAM),
  1838.         but allows for significant further optimizations and is easier to
  1839.         map onto actual general-purpose machines.
  1840.  
  1841.       - A back-end that maps the BAM onto various actual general-purpose
  1842.         machines, including MIPS R3000 (DEC Ultrix and MIPS RISC/os),
  1843.         SPARC (SunOS), HP 9000 300/400 with MC68020, MC68030 or MC68040
  1844.         processors (HP-UX), and Sun3 (SunOS).
  1845.  
  1846.       - A run-time system offering substantially the same built-in 
  1847.         predicates and memory management as Quintus Prolog, with additions 
  1848.         such as two kinds of destructive assignment.  Most of the built-in 
  1849.         predicates are written in Prolog, with little or no performance 
  1850.         penalty.
  1851.  
  1852.    Aquarius Prolog also includes an interpreter and documentation.
  1853.    Aquarius Prolog comes in two distributions, Enduser and Full. The
  1854.    latter includes full source code and implementation notes.
  1855.  
  1856.    Aquarius Prolog may be obtained free of charge from USC, after signing 
  1857.    and returning a license agreement. To get the license agreement, send a
  1858.    message to listserv@acal-server.usc.edu with 
  1859.       get aquarius-info license
  1860.    in the message body. To get more information about the Full and
  1861.    Enduser distributions, send the listserver a message containing
  1862.    one or both of the two lines: 
  1863.            get aquarius-info readme-full
  1864.            get aquarius-info readme-enduser
  1865.    To subscribe to the aquarius-prolog mailing list, send the listserver a
  1866.    message with body: 
  1867.            subscribe aquarius-prolog <Your real name here>
  1868.    To get more information about the abilities of the listserver, send it a
  1869.    message with 'help' in the body.
  1870.  
  1871.    For further information, write to University of Southern California,
  1872.    Advanced Computer Architecture Laboratory (ACAL), Attn: Aquarius Prolog
  1873.    Licensing, 3740 S. McClintock, Suite 131, Los Angeles, CA 90089-2561, or
  1874.    send email to aquarius@acal-server.usc.edu.
  1875.  
  1876. Beta-Prolog (version 1.2):
  1877.  
  1878.    Beta-Prolog is a fast and portable Prolog implementation. It consists 
  1879.    of an emulator of the NTOAM (matching Tree Oriented Abstract Machine)
  1880.    written in C, a compiler written in Prolog that translates Prolog
  1881.    programs into NTOAM instructions, and a library of built-in
  1882.    predicates. 
  1883.  
  1884.    Beta-Prolog has the following features:
  1885.  
  1886.       1. It is one of the fastest emulator-based Prolog implementations.
  1887.      The NTOAM inherits many good features of the WAM, but differs from
  1888.      WAM-based systems in that predicate arguments are passed directly
  1889.      in stack frames and only one frame is used for each predicate. For
  1890.      many programs written for WAM-based systems, Beta-Prolog is faster
  1891.      than emulator-based SICStus Prolog 2.1. Further speed-ups can be
  1892.      achieved if these programs are rewritten into a style suitable for
  1893.      Beta-Prolog by taking the NTOAM's argument passing scheme into
  1894.      account.
  1895.  
  1896.       2. Besides Edinburgh style clauses, Beta-Prolog also accepts
  1897.      matching clauses in which input and output unifications are
  1898.      separated, and determinism is denoted explicitly. The compiler is
  1899.      able to translate predicates in this form into matching trees and
  1900.      index them using all input arguments. The compiler can compile
  1901.      quite large programs in a short time because it consists of only
  1902.      matching clauses.
  1903.    
  1904.       3. It provides an interactive interface through which the
  1905.          programmers can consult, compile, load, debug and run programs.
  1906.    
  1907.       4. It provides an interface through which C functions can be
  1908.          called from Prolog. 
  1909.  
  1910.       5. It provides a special data structure called state tables that
  1911.      can be used to represent graphs, simple and complex domains in
  1912.      constraint satisfaction problems, and situations in various
  1913.      combinatorial search problems.
  1914.  
  1915.       6. It includes a finite-domain constraint solver with which 
  1916.          constraint satisfaction problems can be specified declaratively. 
  1917.  
  1918.    Beta-Prolog is available by anonymous ftp from
  1919.       ftp.kyutech.ac.jp:/pub/Language/prolog/ [131.206.1.101]
  1920.    or from the CMU AI Repository in
  1921.       ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/prolog/beta_pl/
  1922.    The system can be installed without difficulty on any machine that
  1923.    runs Unix and the cc (or gcc) C compiler. Beta-Prolog was developed by
  1924.    Neng-Fa Zhou, <zhou@mse.kyutech.ac.jp>, Faculty of Computer Science
  1925.    and Systems Engineering, Kyushu Institute of Technology, 680-4 Kawazu,
  1926.    Iizuka, Fukuoka 820, Japan, phone 81-948-29-7774, fax 81-948-29-7760.
  1927.    For more information, send mail to betaprolog@cad.mse.kyutech.ac.jp.
  1928.    
  1929. BinProlog:
  1930.    clement.info.umoncton.ca:/BinProlog3.0.tar.gz [139.103.16.2]
  1931.    ftp.elis.rug.ac.be:/pub/BinProlog/        [157.193.67.1]
  1932.  
  1933.    BinProlog replaces the WAM by a more compact continuation passing logic
  1934.    engine based on a mapping of full Prolog to binary logic programs.  It
  1935.    includes an interface Tcl/Tk. Version 2.20 runs on Sparc, DEC Alpha,
  1936.    MIPS (SGI, DEC) 68k (NeXT, Sun3), R6000 (IBM), PA-RISC (HP) and IBM PC
  1937.    (386/486). The compiler makes 528 KLIPS on a Sparc 10-40 (101 KLIPS on a
  1938.    NeXT) and still uses a very small (49K under Solaris 2.1) emulator,
  1939.    making it among the fastest freely available C-emulated Prologs (3-5
  1940.    times faster than C-Prolog, 2-3 times faster than SWI-Prolog, 1.5-2
  1941.    times faster than (X)SB-prolog and close to C-emulated Sicstus 2.1.).
  1942.    Comments and bug reports should be sent to Paul Tarau
  1943.    <binprolog@info.umoncton.ca>.
  1944.  
  1945.    BinProlog is free for reasearch and other non-profit purposes.  Use in
  1946.    industrial applications, licensing of C-sources, porting to other
  1947.    platforms, BinProlog related support and consulting are available but
  1948.    need a separate agreement. BinProlog's very small code-size and high
  1949.    performances make it suitable to be integrated in industrial
  1950.    C-applications that need the services of an embedded logic
  1951.    programming engine. 
  1952.  
  1953. Boizumault Prolog:
  1954.    The various Prolog interpreters described in Patrice Boizumault's
  1955.    book, "The Implementation of Prolog", are available by anonymous
  1956.    ftp from
  1957.       cnam.cnam.fr:/pub/Boizumault/
  1958.    or from the CMU AI Repository in
  1959.       ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/prolog/boiz_pl/
  1960.    The three interpreters, corresponding to appendices A through D of
  1961.    the book, are written in Common Lisp. Examples which run in all the
  1962.    interpreters include cryptarithms, Eliza, Sieve of Eratosthenes,
  1963.    Factorial, N-Queens, and Quicksort. For more information, write to 
  1964.    Patrice Boizumault <boizu@math-appli-uco.fr>.
  1965.  
  1966. Common ESP:
  1967.    CESP (Common Extended Self-contained Prolog) is an object-oriented
  1968.    system by the AI Language Research Institute, Kamakura, Japan. The
  1969.    binary is free for R & D use only -- send 1/4in CMT Sun3 and Sun4
  1970.    (Sparc) with Sun OS R4.0.3, R4.1 or R4.1.1. For more information,
  1971.    write to AI Language Research Institute Ltd, Yoshitoku Bldg, Shiba
  1972.    3-15-14, Minato-Ku, Tokyo 105, Japan, fax +81 3 3456 4418, or send
  1973.    email to k-hata@air.co.jp or matsuura@air.co.jp.
  1974.  
  1975. cu-Prolog: See [2-5].
  1976.  
  1977. ECLiPSe (ECRC Logic Programming System) combines the functionalities
  1978. of several ECRC systems, including SEPIA (an Edinburgh-style
  1979. extensible Prolog system based on a WAM compiler), MegaLog (a database
  1980. system) and CHIP (a constraint logic programming system).  ECLiPSe
  1981. includes a Prolog compiler with extended functionality that is Quintus
  1982. and SICStus compatible, a tightly connected database system based on
  1983. the BANG file system, a CLP system, and an interface to the Tcl/Tk X11
  1984. toolkit. The BANG database can store not only relations, but also any
  1985. Prolog structures and programs. The CLP system contains several
  1986. libraries with various types of constraint handling schemes, including
  1987. atomic finite domains, linear rational constraints, CHR (constraint
  1988. handling rules) and Propia (generalised propagation).  It also
  1989. supports writing further extensions like new user-defined constraints
  1990. or complete new constraint solvers.  ECLiPSe also includes a profiler,
  1991. user-definable syntax, metaterms as first-class citizens, coroutining,
  1992. a high-level debugger (OPIUM), a partial evaluation system (PADDY),
  1993. and unlimited precision integer and rational numbers. ECLiPSe is
  1994. available for a nominal fee of DM 300 (~$200) to all academic and
  1995. government-sponsored organizations. It is distributed in binary form
  1996. for Sun-3 and Sparc machines. Send orders or requests for further
  1997. information to eclipse_request@ecrc.de or write to ECRC,
  1998. Arabellastrasse 17, 81925 Munich, Germany. The ECLiPSe documentation
  1999. (ASCII and dvi) and some shareware packages ported to ECliPSe are now
  2000. available by anonymous ftp from
  2001.    ecrc.de:/pub/eclipse
  2002. To subscribe to the eclipse_users@ecrc.de mailing list, send mail to  
  2003. eclipse_request@ecrc.de. The tech support email address is
  2004. eclipse_bugs@ecrc.de. 
  2005.  
  2006. eLP (Ergo Lambda Prolog) is an interpreter written by Conal Elliott,
  2007. Frank Pfenning and Dale Miller in Common Lisp and implements the core
  2008. of lambda Prolog (higher-order hereditary Harrop formulas). It is
  2009. embedded in a larger development environment called ESS (the Ergo
  2010. Support System).  eLP implements all core language feature and offers
  2011. a module system, I/O, some facilities for tracing, error handling,
  2012. arithmetic, recursive top-levels, on-line documentation and a number
  2013. of extended examples, including many programs from Amy Felty's and
  2014. John Hannan's thesis.  It should run in Allegro Common Lisp, Lucid
  2015. Common Lisp, Kyoto Common Lisp, CMU Common Lisp and Ibuki Common Lisp.
  2016. The eLP implementation of lambda Prolog is no longer developed or
  2017. maintained, but it is still available via anonymous ftp from
  2018. ftp.cs.cmu.edu:/afs/cs.cmu.edu/project/ergo/export/ess/. The file
  2019. ergolisp.tar.Z contains the Ergo project's extensions to Common Lisp,
  2020. including some facilities for attributes and dealing with abstract
  2021. syntax trees. The file sb.tar.Z contains the Ergo
  2022. Parser/Unparser/Formatter generator and ab.tar.Z contains the Ergo
  2023. Attribute Grammar facility. The file elp.tar.Z contains the Ergo
  2024. implementation of lambda Prolog.  To customize grammars you need the
  2025. sb.tar.Z file.  When you retrieve the system, please print, fill out,
  2026. and send in a copy of the non-restrictive license you will find in the
  2027. file LICENSE. To subscribe to the elp@cs.cmu.edu mailing list, send
  2028. mail to elp-request@cs.cmu.edu. Bugs should be sent to
  2029. elp-bugs@cs.cmu.edu.
  2030.  
  2031. ESL Prolog-2 (PD Version):
  2032.    ai.uga.edu:ai.prolog/eslpdpro.zip [128.192.12.9]
  2033.  
  2034.    A prolog for MS-DOS systems with good performance. It deviates
  2035.    slightly from Edinburgh standard (strings "like this" are not lists
  2036.    of ASCII codes), but you can add a declaration that makes it fully 
  2037.    Edinburgh-compatible. (Add the line
  2038.         :- state(token_class,_,dec10).
  2039.    at the beginning of the program.) It is a more limited version
  2040.    of the interpreter from the Commercial Version (see [2-2] below).
  2041.    [Please note that ESL Prolog is NOT a UGA product, they just run
  2042.    the machine on which a copy is made available. Anyone with
  2043.    questions should contact ESL in Oxford, England (see [2-2] below).
  2044.    The commercial version of ESL Prolog-2 has been sold to ESI.]
  2045.  
  2046.    Documentation is available as a 2-volume set published by Ablex
  2047.    (type "prolog2" for info). ESL Prolog is also discussed
  2048.    extensively in Tony Dodd's book "Prolog: A Logical Approach,"
  2049.    Oxford University Press. 
  2050.  
  2051. GOEDEL is intended to be a declarative successor to Prolog.  The main
  2052. design aim of Goedel is to have functionality and expressiveness
  2053. similar to Prolog, but to have greatly improved declarative semantics
  2054. compared with Prolog.  This improved declarative semantics has
  2055. substantial benefits for program construction, verification,
  2056. debugging, transformation, and so on. Considerable emphasis is placed
  2057. on Goedel's meta-logical facilities, since this is where Prolog is
  2058. most deficient.  In particular, Goedel has declarative replacements
  2059. for Prolog's var, nonvar, assert, and retract.  Goedel is a strongly
  2060. typed language, its type system being based on many-sorted logic with
  2061. parametric polymorphism. It has a module system, and supports floating
  2062. point numbers and infinite precision integers and rationals. It can
  2063. solve constraints over finite domains of integers and also linear
  2064. rational constraints. It supports processing of finite sets.  It also
  2065. has a flexible computation rule and a pruning operator which
  2066. generalises the commit of the concurrent logic programming languages.
  2067. The release includes the Goedel system, the SAGE partial evaluator for
  2068. Goedel, a user manual, and 50 example programs.  Goedel must be
  2069. compiled in SICStus Prolog 2.1 #6 or later; Sparc and Linux
  2070. executables are included in the distribution.  Goedel is available by
  2071. anonymous ftp from 
  2072.    ftp.cs.kuleuven.ac.be:/pub/logic-prgm/goedel/ [134.58.41.2] 
  2073.    ftp.cs.bris.ac.uk:/goedel [137.222.102.102]
  2074. For more information, write to goedel@compsci.bristol.ac.uk. Please
  2075. send an email message to this address (with your name, institution and
  2076. address) to this address when you obtain the system. To subscribe to
  2077. the goedel-users@compsci.bristol.ac.uk mailing list, send mail to
  2078.   goedel-users-request@compsci.bristol.ac.uk
  2079. indicating that you wish to join the Goedel discussion group.
  2080. A book describing the language is now available from MIT Press:
  2081.    Patricia Hill and John Lloyd, "The Godel Programming Language",
  2082.    MIT Press, Cambridge, MA, 1994. ISBN 0-262-08229-2 ($45.00).
  2083.  
  2084. IC-Prolog II:
  2085.    src.doc.ic.ac.uk:/computing/programming/languages/prolog/icprolog/.
  2086.    The emulator is available at present only in Sun-4 binary form.
  2087.    Source code may be released later in the year when project
  2088.    finishes. 
  2089.  
  2090.    Produced by Imperial College, IC-Prolog II is a multi-threaded
  2091.    Prolog system.  It includes a Parlog sub-system, an interface to
  2092.    TCP primitives and "mailboxes", a high level communication
  2093.    system.  These enable distributed applications (such as
  2094.    client/server systems) to be written using logic programming.
  2095.    The distribution also includes a simple expert system shell and
  2096.    the preprocessor for the Prolog language extension L&O from the
  2097.    book "Logic & Objects" by Frank McCabe.  (The sources for the
  2098.    L&O extension is also available to LPA MacProlog users in the
  2099.    subdirectory 'lo'.)
  2100.  
  2101.    See "I.C. Prolog II : a Multi-threaded Prolog System" by Damian
  2102.    Chu and Keith Clark and also "IC Prolog II: a Language for
  2103.    Implementing Multi-Agent Systems" by Damian Chu.  Postscript
  2104.    copies of these two papers may be found in the subdirectory
  2105.    'papers'.
  2106.  
  2107.    Standalone versions of the Parlog system for Sun-3 and Sun-4
  2108.    can also be found in this directory.
  2109.  
  2110.    Contact Damian Chu <dac@doc.ic.ac.uk> for questions about IC
  2111.    Prolog II, and contact Zacharias Bobolakis <zb@doc.ic.ac.uk> for
  2112.    information about L&O.
  2113.  
  2114. JB-Prolog 2.1.2 is a slim and powerfull prolog for the MacIntosh. Its key
  2115. features are: Arbitrary long integers, fast interpreter only, source
  2116. line debugger, user interface toolkit, persistent objects. It is
  2117. available from the CMU AI repository as 
  2118.  ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/prolog/jbprolog/JBprolog2.1.2.sit.hqx
  2119. For more information contact Jan Burse, jburse@clients.switch.ch,
  2120. XLOG, Scheuchzerstr. 67, 8006 Zrich, Switzerland.
  2121.  
  2122. PIE2 is a Prolog interpreter for DOS. It is available on CompuServe in
  2123. the AIEXPERT forum. PIE2.zip contains the interpreter and examples, and
  2124. PIEDOC.ZIP contains the documentation. Written by Brent Ruggles
  2125. <ruggles@shell.com>. 
  2126.  
  2127. Prolog-68 is a free WAM-based Prolog system running on Atari ST and TT
  2128. computers. Not yet finished (no floating point, some missing
  2129. built-ins). Contact Jens Kilian <jensk@hpbbn.bbn.hp.com> for
  2130. information. Available by anonymous ftp from
  2131.    ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/prolog/prolog68/
  2132. as a ZOO archive.
  2133.  
  2134. Prolog/Mali is a compiler for the higher-order language Lambda-Prolog.
  2135. Lambda-Prolog is an extension of Prolog defined by Miller (Miller,
  2136. D.A., and Nadathur, G., "Higher-order logic programming", 3rd
  2137. International Conference on Logic Programming, pages 448-462, London
  2138. 1986). It is an extension of Prolog where terms are simply typed
  2139. lambda terms and clauses are higher order hereditary Harrop formulas.
  2140. The main novelties are universal quantification on goals and
  2141. implication.  Prolog/Mali is a complete system which includes a C
  2142. translator, a linker, libraries, runtime, and documentation, and runs
  2143. on UNIX.  It requires the MALI-V06 abstract memory package.
  2144. Prolog/Mali is available by anonymous ftp from ftp.irisa.fr:/pm/.
  2145. Written by Pascal Brisset <brisset@irisa.fr> (or <brisset@ecrc.de>)
  2146. and Olivier Ridoux (ridoux@irisa.fr). To be added to the mailing list,
  2147. send mail to prolog-mali-request@irisa.fr. For more information, send
  2148. mail to pm@irisa.fr.
  2149.  
  2150. LIFE (Logic, Inheritance, Functions, and Equations) is an experimental
  2151. programming language with a powerful facility for structured type
  2152. inheritance. It reconciles styles from functional programming, logic
  2153. programming, and object-oriented programming. It subsumes the
  2154. functionality of its precursor languages LOGIN and Le_Fun, and may be
  2155. seen as an extension of Prolog. The syntax of Wild_LIFE has been kept
  2156. as close as possible to that of the Edinburgh standard for Prolog.
  2157. LIFE offers natively high-level abstraction facilities and convenient
  2158. data and control structures particularly well-suited for AI
  2159. programming. LIFE implements a constraint logic programming language
  2160. with equality (unification) and entailment (matching) constraints over
  2161. order-sorted feature terms. The interplay of unification and matching
  2162. provides an implicit coroutining facility thanks to an automatic
  2163. suspension mechanism. This allows interleaving interpretation of
  2164. relational and functional expressions which specify structural
  2165. dependencies on objects. The Wild_LIFE interpreter is the first
  2166. implementation of the LIFE language available to the general public.
  2167. It is a product of Digital Equipment Corporation's Paris Research
  2168. Laboratory (DEC PRL). Wild_LIFE runs on MIPS/Ultrix (DECstations),
  2169. Alpha/OSF-1, SPARC/SunOS, RS/6000, and SGI machines, and should 
  2170. be portable to other Unix workstations. It is implemented in C,
  2171. and includes an interface to X Windows. Wild_LIFE is available
  2172. by anonymous ftp from gatekeeper.dec.com:/pub/plan as the file
  2173. Life1.0.tar.Z. To be added to the mailing list (life-users@cs.sfu.ca),
  2174. send mail to life-users-request@cs.sfu.ca. Send bug reports to
  2175. life-bugs@cs.sfu.ca. 
  2176.  
  2177. Open Prolog: 
  2178.    Open Prolog (OP) is a Prolog interpreter for the Apple Macintosh.
  2179.  
  2180.    It follows the so-called 'Edinburgh' syntax and supports most standard
  2181.    Prolog features, including Definite Clause Grammars.
  2182.    Extra predicates can be added via drop-in external predicates, similar to
  2183.    Hypercard's XCMDs.
  2184.  
  2185.    OP will work in any Macintosh from a Plus upwards, and is now 
  2186.    32-bit clean.
  2187.  
  2188.    OP is available by anonymous ftp from
  2189.       grattan.cs.tcd.ie:/languages/open-prolog/ [134.226.32.15] 
  2190.    It is also available from other sites, such as:
  2191.       sumex-aim.stanford.edu:/info-mac/
  2192.       mac.archive.umich.edu [141.211.165.41]
  2193.       nexus.yorku.ca:/pub/prolog/  [130.63.9.1] 
  2194.       aisun1.ai.uga.edu [128.192.12.9]
  2195.       /afs/umich.edu/group/itd/archive/mac/development/languages 
  2196.    but the most recent version will always be available from 
  2197.    grattan, OP's home site.
  2198.  
  2199.    For more information, write to Michael Brady, Computer Science
  2200.    Department, Trinity College, Dublin 2, IRELAND, send email to
  2201.    brady@cs.tcd.ie, call +353 1 7021786, or fax +353 1 6772204 (5 hours
  2202.    ahead of East Coast US time).
  2203.  
  2204. PD Prolog 19: 
  2205.    wuarchive.wustl.edu:/mirrors/msdos/prolog/prolog19.arc (IBM PC)
  2206.    aisun1.ai.uga.edu (128.192.12.9)
  2207.  
  2208. Portable Prolog System is an interpreter from the University of York.
  2209. Runs on any system having a Pascal compiler. For more information,
  2210. write to University of York, Software Distribution Officer, Department
  2211. of Computer Science, University of York, York, YO1 5DD, UK, call +44
  2212. (904) 59861, or fax +44 (904) 433744.
  2213.  
  2214. Qu-Prolog 3.2 and Ergo 4.0:
  2215.  
  2216.    Qu-Prolog is a high-level language designed primarily for rapid
  2217.    prototyping of interactive theorem provers and, more generally, for
  2218.    symbolic computation on formal languages.  Its object level includes
  2219.    quantified terms and object variables.  As an example, the interactive
  2220.    theorem prover Ergo 4.0 is implemented in Qu-Prolog.  The compactness
  2221.    and high level of Ergo 4.0 source code demonstrate the advantages of
  2222.    Qu-Prolog for such applications. Ergo includes a 'window inference'
  2223.    method that is specifically designed to support hierarchical
  2224.    goal-directed proofs and allow easy access to the context of a
  2225.    subterm. Ergo also provides support for defining a variety of logics
  2226.    and support for proving schematic theorems and answer extraction.
  2227.    Ergo is being used to support the development of verified software.
  2228.    The system has been tested only on a Sun4.
  2229.    Qu-Prolog and Ergo are available by anonymous ftp from 
  2230.       ftp.cs.uq.oz.au:/pub/SVRC/
  2231.    as software/qp.tar.Z and software/Ergo.tar. The tech report
  2232.    techreports/tr93-18.ps.Z describes Qu-Prolog in detail. Send comments
  2233.    to Peter Robinson <pjr@cs.uq.oz.au>.
  2234.  
  2235. SB-Prolog:
  2236.    cs.arizona.edu:/sbprolog
  2237.    sbcs.sunysb.edu:/pub/sbprolog
  2238.  
  2239.    Stony Brook Prolog runs on Sun4, Pyramid-98x, DEC3100, SGI Iris,
  2240.    Amiga, and MS-DOS machines. Contact warren@sbcs.sunysb.edu for more
  2241.    information. Two versions are available: version 2.5 is an
  2242.    interpreter for Amigas and version 3.1 is an interpreter and compiler
  2243.    for Unix and MSDOS/386.
  2244.  
  2245.    SB-Hilog runs in SB-Prolog and Quintus Prolog and is available on
  2246.       sbcs.sunysb.edu:/pub/hilog/
  2247.  
  2248.    src.doc.ic.ac.uk [146.169.2.10] contains SBProlog 3.1 executables for
  2249.    MS-DOS/386 in /computing/programming/languages/prolog/sbprolog,
  2250.    filename sbpmsdos.zip. 
  2251.  
  2252.    nic.funet.fi contains SBProlog executables for Amiga in
  2253.    /pub/amiga/fish/disks100-199/ff140. 
  2254.  
  2255.    Modular SB-Prolog (= SB-Prolog version 3.1 plus modules) is available
  2256.    by anonymous FTP from 
  2257.       ftp.dcs.ed.ac.uk:/pub/dts/mod-prolog.tar.Z [129.215.160.5]
  2258.    Includes interpreter for SPARC. For more information, write to
  2259.    Brian Paxton <mprolog@dcs.ed.ac.uk>. 
  2260.  
  2261.    [NOTE: SB-Prolog is superseded by XSB (see below) and hence is
  2262.     no longer supported by Stony Brook or the University of Arizona.
  2263.     The only reason to continue using SB-Prolog is for DOS, since
  2264.     XSB does not run under DOS and there are currently no plans to
  2265.     port it to DOS.]
  2266.  
  2267. SLG:
  2268.    The SLG system is a meta interpreter implementation of 
  2269.    goal-oriented deductive query processing and non-monotonic 
  2270.    reasoning with the following features:
  2271.        * goal-oriented query evaluation of normal logic programs 
  2272.          under the well-founded semantics by Van Gelder, Ross 
  2273.          and Schliph;
  2274.        * goal-oriented query evaluation of general logic programs 
  2275.          under the alternating fixpoint logic by Van Gelder, with 
  2276.          the restriction that the body of a clause has to be either
  2277.          an existential conjunction of literals or a universal 
  2278.          disjunction of literals.
  2279.        * goal-oriented query evaluation under the stable model semantics
  2280.          by Gelfond and Lifchitz.
  2281.        * integration with Prolog execution, and the use of Prolog syntax 
  2282.          for all programs.
  2283.    The SLG system is freely available by anonymous ftp from Southern
  2284.    Methodist University or SUNY at Stony Brook 
  2285.       seas.smu.edu:/pub/                 [129.119.3.2]
  2286.       sbcs.sunysb.edu:/pub/XSB/          [130.245.1.15]
  2287.    as the file slg.tar.gz. Comments, requests, and bug reports should 
  2288.    be sent to Weidong Chen, <wchen@seas.smu.edu>, Computer Science and 
  2289.    Engineering, Southern Methodist University, Dallas, Texas 75275-0122, 
  2290.    phone 214-768-3097, or David Scott Warren, <warren@cs.sunysb.edu>, 
  2291.    Department of Computer Science, SUNY at Stony Brook, Stony Brook, 
  2292.    NY 11794-4400, phone 516-632-8454.
  2293.  
  2294. SWI Prolog:
  2295.    swi.psy.uva.nl:/pub/SWI-Prolog/  [145.18.114.17] (Main source)
  2296.    as the files pl-1.9.tar.gz (sources), win-pl.zip (Windows 3.1 application),
  2297.    xos.tgz (DOS File I/O redefinition) and GNU readline
  2298.    [The patch level (last digit) is regularly updated and diffs between
  2299.    patch levels are located in the same directory.]
  2300.    mpii02999.ag2.mpi-sb.mpg.de:pub/tools/SWI/ [139.19.20.250] (OS/2)
  2301.  
  2302.    ftp.th-darmstadt.de:/pub/programming/languages/prolog/ [130.83.22.253]
  2303.    rs3.hrz.th-darmstadt.de  [130.83.55.75]
  2304.  
  2305.    SWI-Prolog includes a fast compiler, a profiler, C interface, a
  2306.    module system, libraries, and dynamic loading. 
  2307.    Runs on Atari ST, Gould PN, NeXT, HP, IBM Linux, DEC MIPS, IBM
  2308.    PS/2 AIX, OS/2, IBM RS/6000, Sun3, Sun4, Sparc, and Vax.
  2309.    Written by Jan Wielemaker, SWI, University of Amsterdam,
  2310.    Roetersstraat 15, 1018 WB     Amsterdam, The Netherlands,
  2311.    <jan@swi.psy.uva.nl>. Ported to OS/2 by Andreas Toenne, 
  2312.    <atoenne@mpi-sb.mpg.de>. The mailing list is prolog@swi.psy.uva.nl.
  2313.    To be added to the list, send mail to prolog-request@swi.psy.uva.nl.
  2314.  
  2315. Toy Prolog is an interpreter written in Pascal. About 3500 lines of
  2316. source. Free with "Prolog for Programmers" by Kluzniak and Szpakowicz
  2317. (Academic Press 1985). The Atari ST version is no longer supported.
  2318.  
  2319. TPM (Transparent Prolog Machine) is a demo version of LPA MacProlog
  2320. with the TPM debugger included. Runs on Apple Macintosh. It is
  2321. available by anonymous FTP from hcrl.open.ac.uk:/pub/software/.
  2322.  
  2323. Tricia is a free Prolog high-level emulator with interpreter available
  2324. by email from Uppsala University. Tricia currently runs on the Apple
  2325. Macintosh. It used to run on Sun3, Sun4, Apollo DN-3500/4500/5500 (OS
  2326. version 10.*) and HP-730's, but support for those platforms has been
  2327. discontinued. For more information, write to Uppsala University,
  2328. Tricia project, Computing Science Department, Box 311, S-751 05
  2329. UPPSALA, Sweden, fax +46 18 511925, or email to
  2330. tricia-request@csd.uu.se. It is available by anonymous ftp from
  2331.    ftp.csd.uu.se:/pub/Tricia/
  2332. A copy is also available in the directory
  2333.    /afs/umich.edu/group/itd/archive/mac/development/languages
  2334. if your site runs the Andrew File System, or by anonymous ftp from
  2335. mac.archive.umich.edu.
  2336.  
  2337. WAMCC 2.2 is a WAM-based Prolog to C compiler.  It conforms more or
  2338. less to the Edinburgh standard, and includes most of the usual
  2339. built-in predicates, a top-level, a Prolog debugger and a WAM
  2340. debugger. WAMCC is designed to be easily extended (see clp(FD) in
  2341. [2-5], for example). WAMCC's speed is halfway between SICStus emulated
  2342. and SICStus native code on a Sparc (1.5 times faster and 1.5 times
  2343. slower, respectively). WAMCC requires GCC 2.4.5 or higher and has been
  2344. tested on Sparc workstations. It should be easily ported to 32-bit
  2345. machines with GCC. WAMCC is available free by anonymous ftp from
  2346.    ftp.inria.fr:/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/wamcc/
  2347. For more information, write to Daniel Diaz <Daniel.Diaz@inria.fr>,
  2348. INRIA Rocquencourt, FRANCE.
  2349.  
  2350. XSB is a Prolog-based Logic Programming System that extends the
  2351. standard functionality of Prolog with an implementation of OLDT
  2352. (tabling) and HiLog terms. It is a descendent of PSB-Prolog and
  2353. SB-Prolog. OLDT resolution is useful for recursive query computation,
  2354. allowing programs to terminate correctly in many cases where Prolog
  2355. does not. HiLog supports a type of higher-order programming in which
  2356. predicate symbols can be variable or structured.  This allows
  2357. unification to be performed on the predicate symbols themselves in
  2358. addition to the arguments of the predicates. XSB includes an
  2359. optimizing compiler, C interface, a module system, list processing
  2360. libraries, and dynamic loading.  XSB is a descendant of SB-Prolog.
  2361. XSB runs on Sun3, Sun4, 386/486 PCs (Linux and 386 BSD), SGI machines
  2362. (IRIX), HP 300/400 series (HP-UX) and NeXT, and can be compiled using
  2363. either the GNU C compiler or the Sun C compiler. Porting XSB to any
  2364. 32-bit machine running Unix should be straightforward.  THIS IS A BETA
  2365. RELEASE. XSB is available by anonymous ftp from
  2366.    sbcs.sunysb.edu:/pub/XSB/XSB.tar.Z [130.245.1.15]
  2367. For more information, write to XSB Research Group, Computer Science
  2368. Department, SUNY at Stony Brook, Stony Brook, NY 11794, or send email to
  2369. xsb-contact@cs.sunysb.edu.
  2370.  
  2371. See also BeBOP and NCL in [2-3].
  2372.  
  2373. ----------------------------------------------------------------
  2374. Subject: [2-2] Commercial Prolog Implementations
  2375.  
  2376. AAIS Full Control Prolog (version 3.1.3) is an Edinburgh-standard
  2377. compiler and interpreter that runs on all Apple 680x0 Macintosh computers
  2378. (from Plus through Quadras and Powerbooks). It runs under System 6
  2379. and 7 (or A/UX 3.0), requiring 4mb RAM, and is 32-bit clean.  It
  2380. is built on an object-oriented kernel, includes many object-oriented 
  2381. extensions to the language, functions for constructing graphical user 
  2382. interfaces, direct program access to the printer for printing text or 
  2383. graphics, and full support for Apple Events. There are also numerous 
  2384. example programs, including source code for the AAIS Full Control 
  2385. Prolog's own standard development interface, and how to interface with
  2386. Oracle databases and FileMaker Pro databses.  AAIS Full Control Prolog 
  2387. costs $495. For an additional $199 (and a signed license), you can get a
  2388. copy of AAIS Prolog Program Creator, an application generator/runtime
  2389. distribution system that turns Prolog programs into Macintosh
  2390. applications. For more information, write to Advanced AI Systems,
  2391. Inc., PO Box 39-0360, Mountain View, CA 94039-0360, call 415-948-8658,
  2392. fax 415-948-2486, or email AAISProlog@aol.com. Earlier version (2.0) 
  2393. reviewed in AI Expert, Feburary 1991.
  2394.    [NOTE: Douglas Lanam, President of Advanced AI Systems, Inc.,
  2395.    announced on April 1, 1994, that he would be ceasing all future
  2396.    development of the product due to economic and personal reasons. The
  2397.    remaining stock of AAIS Full Control Prolog and the Program Creator is
  2398.    being offered on an as-is basis with no return for $99 a copy. You
  2399.    can order copies by phone using your credit card.
  2400.    Technical support through phone, mail, and email is continuing, but
  2401.    they cannot return phone calls or faxes outside North America, so
  2402.    those replies would be sent by email or snail mail.]
  2403.  
  2404. AIAI Edinburgh Prolog is a high level prolog emulator that runs on
  2405. Acorn R140 (RISC iX), DG AViiON (DG/VX 4.1), Vax (Berkeley Unix, VMS),
  2406. Gould Encore (Unix), HP 9000/300 (HP-UX), MIPS RISC (RiscOS), Sequent
  2407. (DYNIX V3), Sun 2,3,4 (SunOS-3,4). For more information, write to
  2408. AIAI, AI Applications Institute, Software Secretary, University of
  2409. Edinburgh, 80 South Bridge, Edinburgh EH1 1HN, UK, call +44 (31) 650
  2410. 2734, fax +44 (31) 226 2730, or send email to AIAI@ed.ac.uk.
  2411.  
  2412. ALS Prolog runs on 80386 machines, including DOS ($799), Sun 386i,
  2413. Xenix, Apple Macintosh ($499), System V Unix (Microport), Sun3, Sun4,
  2414. Sparc, Aviion, NeXT, VAX and Delta88. Workstation versions $4,500.
  2415. Student editions $59. Provides a superset of Edinburgh Prolog.  Includes
  2416. OOP, X Windows/Motif/Windows interface, and C interface (Prolog programs
  2417. may be embedded in C programs). It is available from Applied Logic
  2418. Systems, Inc., PO Box 180, Newton Centre, MA 02159, phone 617-965-9191,
  2419. fax 617-965-1636, or email info@als.com, sales@als.com, or
  2420. support@als.com. Send a message to info@als.com with subject line "HELP"
  2421. to get a general information file in reply. The URL for their WWW site is
  2422.    http://www.als.com/
  2423. and their FTP site is frege.als.com.
  2424.  
  2425. Arity Prolog 6.1 is an emulator with interpreter and compiler and runs on
  2426. DOS ($650), OS/2 ($1k), Windows (extra $350), OS/2 V.2, and Windows-NT.
  2427. (Note that Windows support means that you can write Prolog programs that
  2428. manipulate Windows. The Windows version of Arity Prolog does not itself
  2429. run under MS Windows.) For more information, write to Arity Corporation,
  2430. Damonmill Square, Concord, MA 01742, call 800-722-7489 (508-371-1243),
  2431. fax 508-371-1487, or send email to 73677.2614@compuserve.com or Paul G.
  2432. Weiss <pgweiss@netcom.com>.
  2433.  
  2434. ProLog by BIM is a high-performance and robust implementation of the
  2435. Prolog language. It compiles to native machine code for maximum
  2436. execution speed, and provides flexible memory management with automated
  2437. expansion, shrinking, garbage collection and user-definable parameters.
  2438. The ProLog by BIM environment comprises a GUI including an execution
  2439. monitor and debugger, an on-line help facility, a extended emacs
  2440. interface and a profiler. ProLog by BIM also includes a bi-directional
  2441. external language interface, which is used for the included interfaces
  2442. to graphics, windowing and RDBMS packages. The system also comes with a
  2443. large library of Prolog source code which contains many of the most
  2444. commonly used predicates.  Stand-alone run-times without royalties and
  2445. embeddability allow problem-free end-user delivery.  ProLog by BIM comes
  2446. with Carmen, a WYSIWYG GUI-Generator delivering Prolog code that allows
  2447. notifiers and call-backs in Prolog and serves as a powerful
  2448. rapid-prototyping aid.  ProLog by BIM runs on SPARC, INTEL PC running
  2449. Solaris 2.x, HP700 and IBM RS/6000. BIM provides both training and
  2450. consultancy on Prolog and Prolog based developments efforts.  For more
  2451. information write to BIM sa/nv, ProLog by BIM dept., Kwikstraat 4,
  2452. B-3078 Everberg, Belgium, call +32 2-759-59-25, fax to +32 2-725-47-83
  2453. (or +32 2-759-47-95) or email to prolog@sunbim.be.
  2454.  
  2455. CIM-Prolog is a high-level emulator with interpreter for Apollo Domain
  2456. and Sun (Unix). Also Standard Prolog for Apollo Domain, IBM PC/AT (DOS),
  2457. INMOS transputer, and Sun. A parallel version is also available.
  2458. For more information, write to Creative Soft GmbH, Turnstrasse 10, D-8510
  2459. Fuerth, Germany, call +49 911 7499214, or fax +49 911 747756.
  2460.  
  2461. Coder's Prolog 2.0 is a Prolog Interpreter from Austin Code Works. Works
  2462. on any system with a C compiler (it is designed for use with C
  2463. programs), including IBM PCs (MS-DOS) and Unix workstations. For
  2464. more information, write to Austin Code Works, 11100 Leafwood Lane,
  2465. Austin, TX 78750-3587, call 512-258-0785, fax 512-258-1342, or send
  2466. email to info@acw.com. 
  2467.  
  2468. Cogent Prolog 3.0 is an Edinburgh-standard compiler and interpreter.
  2469. Compiled and interpreted code may be intermixed in the same program (for
  2470. ease of debugging). The full system includes a debugger, definite clause
  2471. grammar support, full-screen shell, standard listener, support for
  2472. 16-bit and 32-bit protected mode, linker, .exe generator and
  2473. royalty-free distributable runtime (DOS or Windows $248, both $347).
  2474. Compiler & interpreter without linker and distributable runtime ($149).
  2475. Interpreter alone ($49).  Also available is an interactive tutorial, the
  2476. Active Prolog Tutor ($75) and full source code for expert system shell
  2477. prototypes for forward/backward chaining, frames, Rete-network and more
  2478. ($82).  All are IBM-PC (DOS) based. For more info or tech support, email
  2479. amzi@world.std.com, or contact Amzi! Inc., 40 Samuel Prescott Dr., Stow,
  2480. MA 01775. Tel: 508-897-7332. Fax: 508-897-2784.
  2481.  
  2482. Delphia Prolog v2 is an Edinburgh-standard compiler and interpreter that
  2483. runs on Sun3, Sun4, Sparc, RS/6000, Apollo, HP9000/300, Unigraph 68xxx,
  2484. 386/486 (SCO Unix), DecStation (Ultrix), Sony NEWS (Unix), VAX (VMS,
  2485. Ultrix), uVax (Ultrix), VaxStation (Ultrix). Includes database
  2486. interfaces, graphical libraries, and incremental compilation. Price
  2487. $10,000. Write to Delphia, 27 Avenue de la Republique, 38170 Seyssinet,
  2488. France, call 33-76-26-68-94 or fax 33-76-26-52-27. An earlier version
  2489. was reviewed in AI Expert, January 1991 and Feburary 1991.
  2490.  
  2491. ECRC SEPIA. See ECLiPSe. SEPIA is no longer delivered as a
  2492. stand-alone system, but as a part of ECLiPSe.
  2493.  
  2494. EDCAAD C-Prolog is a prolog interpreter for Sun (SunOS), VAX (Ultrix,
  2495. VMS), Apollo, and 68000 (Unix). An inexpensive academic license is
  2496. available. It is an interpreter-based system, and hence is slower than
  2497. WAM-based Prologs. It is implemented in C, and should run on almost
  2498. any 32-bit machine with a C compiler. For more information, write to 
  2499. EdCAAD, Department of Architecture, Edinburgh University, 20 Chambers St.,
  2500. Edinburgh EH1 1JZ, UK, call +44 (31) 650 1000, fax +44 (31) 667 0141,
  2501. or send email to chris@caad.ed.ac.uk.
  2502.  
  2503. FRIL (Fuzzy Relational Inference Language) is a logic-programming
  2504. language that incorporates a consistent method for handling
  2505. uncertainty, based on Baldwin's theories of support logic, mass
  2506. assignments, and evidential reasoning. Mass assignments give a
  2507. consistent way of manipulating fuzzy and probabilistic uncertainties,
  2508. enabling different forms of uncertainty to be integrated within a
  2509. single framework. Fril has a list-based syntax, similar to the early
  2510. micro-Prolog from LPA. Prolog is a special case of Fril, in which
  2511. programs involve no uncertainty. Fril runs on Unix, Macintosh, MS-DOS,
  2512. and Windows 3.1 platforms. For further information, write to Dr B.W.
  2513. Pilsworth, Fril Systems Ltd, Bristol Business Centre, Maggs House, 78
  2514. Queens Rd, Bristol BS8 1QX, UK. A longer description is available as
  2515. ftp.cs.cmu.edu:/user/ai/areas/fuzzy/com/fril.txt
  2516.  
  2517. GT-Prolog is a high performance implementation of Edinburgh-standard
  2518. Prolog for the Commodore Amiga. GT-Prolog includes the ProBench
  2519. interactive development environment supporting incremental compilation,
  2520. a multi-port debugger based on the Byrd model, a source code editor, and
  2521. a break facility. GT-Prolog provides transparent access to sophisticated
  2522. optimization techniques including Tail Recursion Optimisation, First
  2523. Argument Indexing/Hashing, In-line Arithmetic Evaluation and automatic
  2524. Garbage Collection of code and data. Error handling is based on catch
  2525. and throw mechanisms. GT-Prolog is also one of the first implementations
  2526. to support a fully logical Prolog database.  GT-Prolog provides explicit
  2527. control of memory allocation allowing programs to use up to 16mb for
  2528. data and 4gb for code and requires a minimum configuration of 1Mb memory
  2529. plus Workbench version 2 or later.  GT-Prolog includes a library of more
  2530. than 120 predicates that provide user programs with access to the
  2531. facilities of AmigaDOS. The single user price is 89.95 pounds sterling
  2532. inclusive of VAT and postage/packing. For more information, write to
  2533. Graham Thwaites, Grange Technology Limited, Stream Road, Upton, Didcot,
  2534. Oxon OX11 9JG, UK, tel/fax +44-1235-851818, or send email to
  2535. gtpam@gtech.demon.co.uk or 100434.3011@compuserve.com.
  2536.  
  2537. HyperProlog. See Delphia Prolog.
  2538.  
  2539. IBM PROLOG for AIX/6000 (PFA) is a high performance implementation of
  2540. the PROLOG language, combined with a powerful programming environment,
  2541. especially designed for the IBM RISC System/6000 under AIX. PFA was
  2542. developed by BIM as an adaptation of ProLog by BIM for the IBM RISC
  2543. System/6000 under AIX. It was selected by IBM Europe as their
  2544. official PROLOG implementation for the RISC System/6000 (Program
  2545. Number 5776-FAH). For more information: In North-America contact BIM
  2546. systems, 11111 Santa Monica Bld, call 310-445-1500, fax to
  2547. +310-445-1515; in Europe contact your local IBM representative.
  2548. Elsewhere contact BIM, Kwikstraat 4, B-3078 Everberg, Belgium, call
  2549. +32 2 759 59 25, or fax +32 2 759 92 09, or email prolog@sunbim.be.
  2550.  
  2551. IF/Prolog 5.0 is a Prolog compiler with a variety of highly efficient
  2552. constraint problem solving tools, including Boolean constraints,
  2553. Rational terms, Linear terms, Equations and Inequations, Finite Domain
  2554. Constraints and Co-routines. IF/Prolog conforms to the ISO Prolog
  2555. Standard, part 1. IF/Prolog also includes interfaces to C, C++,
  2556. FORTRAN, X11 (OSF/Motif and Athena widgetsets), and SQL (Ingres,
  2557. Oracle, and Informix). IF/Prolog has full screen X11 and Windows based
  2558. debuggers and online hypertext help and quick reference guide.  It is
  2559. available on Unix, OSF/1, VMS, MS-Windows, and mainframe systems,
  2560. including Apollo, Aviion 300, Macintosh (A/UX), microVAX 2000
  2561. (Ultrix), Vax (Ultrix, VMS), VaxStation (Ultrix), DEC Alpha (OSF/1,
  2562. VMS), HP9000, Sun3, Sun4, Sparc, UTS, AIX/370, IBM RS/6000, Decstation
  2563. (Ultrix, OSF/1), Sequent S16, Silicon Graphics, Sony News (Unix),
  2564. Motorola, Nixdorf, Interactive Unix, SCO UNIX, DOS-based 386 PCs, and
  2565. Windows 3.0/3.1.  Academic licenses are available at half price.  For
  2566. more information contact Annette Kolb (marketing) or Dr. Andrew Verden
  2567. (technical) at IF Computer GmbH, Ludwig-Thoma-Weg 11a, D-82065
  2568. Baierbrunn, tel +49 89 7936 0037, fax +49 89 7936 0039, or email
  2569. prolog@mch.sni.de, or IF Computer Japan Ltd., 7/F 2nd Asanuma Bldg.,
  2570. 3-21-10 Hongo, Bunkyo-ku, Tokyo 113, Japan.  tel + 81 3 3818 5826 fax
  2571. + 81 3 3818 5829.
  2572.  
  2573. IQSOFT MProlog is a high-level emulator with interpreter for Unix,
  2574. Macintosh and IBM PC (DOS). Runs on Vax (Unix 4.2 BSD), 68000-based
  2575. machines (Unix), Tektronix 4404, HP3000, and Siemens 1. For more
  2576. information, write to IQSOFT, SZKI Intelligent Software Ltd., Iskola u.
  2577. 10., Budapest, H-1011, Hungary, call +36 1 201 6764, fax +36 1 201 7125, or
  2578. send email to szeredi@iqsoft.hu.
  2579.  
  2580. LPA Prolog is a prolog compiler for IBM PCs (DOS, Windows, 386) and
  2581. Apple Macintosh. LPA Prolog++ is an object-oriented programming system
  2582. based on Prolog. (See Chris Moss's book on Prolog++ in [1-3].)
  2583. MacProlog32 includes incremental 32-bit compilation and Edinburgh syntax
  2584. compatability, and runs under System 7.  Programmer Edition is $745
  2585. list, and the Developer Edition, which includes a runtime generator for
  2586. producing standalone applications, is $1,495. LPA Prolog for Windows
  2587. runs $745, as does LPA Prolog for DOS. Prolog++ runs $995 ($1,995
  2588. Developer Edition). Write to Logic Programming Associates, Ltd., Studio
  2589. 4, Royal Victoria Patriotic Building, Trinity Road, London SW18 3SX,
  2590. England, call +44 081-871-2016, fax +44 081-874-0449, or send email to
  2591. lpa@cix.compulink.co.uk (sales, tech support), UK0049@applelink.apple.com
  2592. (Clive Spenser), or 100135.134@compuserve.com.  In the US call
  2593. 800-949-7567.  LPA products are distributed in North America by Quintus
  2594. under the Quintus name. 
  2595.  
  2596. Maxon Prolog is available for the Atari ST from the German magazine
  2597. 'ST-Computer' for 298 DM. Tel: 010 49 61 96 481811.
  2598.  
  2599. MU-Prolog, NU-Prolog are prolog interpreters from the University of 
  2600. Melbourne. Source licences are available for educational institutions.
  2601. Implemented in C for BSD Unix. Currently running on Sun3, Sun4, Vax, 
  2602. Elxsi, Encore, and SGI. For more information, write to University of 
  2603. Melbourne, MU-Prolog Distribution, Department of Computer Science, 
  2604. Parkville, Victoria 3052, Australia, call +61 3 344 7270, or send email to
  2605. lee@cs.mu.oz.au or jws@cs.mu.oz.au.
  2606.  
  2607. OU Prolog is a prolog interpreter from Open University for IBM PC
  2608. (MS-DOS). Includes video, books. Ask for item PD622 and quote
  2609. reference SA69. For more information, write to Open University,
  2610. Learning Materials Sales Office, PO Box 188, Milton Keynes MK7 6DH, UK.
  2611.  
  2612. PDC Prolog runs on IBM PCs (DOS, OS/2, Windows and SCO Unix). Formerly
  2613. known as Turbo Prolog from Borland. Includes a native code compiler
  2614. but is incompatible with most other prologs. Its variables are
  2615. strongly typed, unlike most other prologs. For more information, write
  2616. Prolog Development Center, 568 14th Street, Atlanta, GA 30318, call
  2617. 800-762-2710, (404-873-1366), fax 404-872-5243 or email
  2618. pdc-request@pdc.dk (general information), sales@pdc.dk (sales),
  2619. support@pdc.dk (tech support). A BBS is run at 404-872-5358. European
  2620. customers may write to Prolog Development Center, A/S, H.J. Holst Vej
  2621. 5A, DK-2605 Broendby, Denmark, call +45 36 72 10 22, or fax +45 36 72
  2622. 02 69. Reviewed in AI Expert January 1991. Other email addresses
  2623. include 753CD.165@compuserve.com. To subscribe to the
  2624. PDC-L@nic.surfnet.nl mailing list, a discussion list for PDC Prolog
  2625. users, send mail to LISTSERV@nic.surfnet.nl with
  2626.     SUBSCRIBE PDC-L <your full name>
  2627. in the message body.
  2628.  
  2629. POPLOG is a high-level prolog emulator with interpreter for Unix. The POPLOG
  2630. environment integrates four AI programming languages in one
  2631. environment: Lisp, Prolog, ML and POP11. POPLOG can also load in C and
  2632. Fortran binaries. Runs on VAX (Ultrix, VMS), VAXStation (Ultrix),
  2633. DECStation (Ultrix), Sun 3,4, Sparc, Solbourne, HP Apollo 9000/400,
  2634. Sparc (HP-UX), MIPS (RISCOS), Sequent Symmetry (Dynix), Apple
  2635. Macintosh (AUX), SONY News (News-OS), and Silicon Graphics Iris
  2636. (Irix). The academic version from Sussex University. For more
  2637. information, write to POPLOG, Sussex University, Poplog Manager,
  2638. School of Cognitive Sciences, Falmer, Brighton BN1 9QN, UK, call +44
  2639. 273 608367, fax +44 273 678188, or send email to popsales@cogs.sussex.ac.uk
  2640. or popmanager@cogs.sussex.ac.uk. The commercial version is available
  2641. from Integral Solutions Ltd as Integral Poplog and Pop++. For more
  2642. information, write to Integral Solutions Ltd, Unit 3, 23 Campbell
  2643. Court, Bramley, Basingstoke Hampshire RG26 5EG, UK, call +44 256 88 20
  2644. 28, fax +44 256 88 21 82, or send email to isl@integ.uucp or
  2645. isl@integ.co.uk. The North American retailer is Computable
  2646. Functions Inc. For more informatin, write to Computable Functions Inc.,
  2647. 35 S. Orchard Drive, Amherst, MA 01002, call 413-253-7637, or fax
  2648. 413-545-1249. Contact Robin Popplestone, pop@cs.umass.edu, for info
  2649. on a new book on Pop-11. There's a users mailing list, and a newsgroup
  2650. as well (comp.lang.pop).
  2651.  
  2652. Prolog-2 (Commercial Version), is a high-level emulator with
  2653. interpreter and compiler for IBM PC (MS-DOS, Windows 3.0/3.1), and
  2654. 386-up. (Non-PC versions for Sun3, Sun4, HP9000 (Unix), RS/6000
  2655. (Unix), and VAX (VMS) are no longer supported, since ESI, the new
  2656. owners, are also distributors for BIM-Prolog.) It is an Edinburgh
  2657. standard prolog with a number of extensions. The windows version
  2658. includes BIPs for programming windows graphics and dialogues.  For
  2659. more information, write to Expert Systems International (ESI), Attn:
  2660. Leo Mulders, PO Box 148, NL-3700 AC ZEIST, the Netherlands, call
  2661. +31-3404-22911, fax +31-3404-32888, or email <prolog@esi.nl>.  To join
  2662. the user's group, send mail to prolog2-request@hplb.hpl.hp.com.
  2663.  
  2664. Prolog III integrates constraint programming with Prolog. It runs on
  2665. Apple Macintosh, IBM PC (386, MS-DOS), Next, Sun3, Sun4, Sparc, HP9000,
  2666. Apollo, RS/6000, Bull DPX, Masscomp (Unix), Vax (Ultrix, VMS),
  2667. DecStation and MicroVAX. For more information, write to PrologIA,
  2668. Parc Technologique de Luminy, Case 919, 13288 Marseilles cedex 09, France,
  2669. call 33-91-26-86-36, fax 33-91-41-96-37, or send email to
  2670. prolia@dcftlx.das.net or prolia@tlxf.geomail.org. The US point of contact
  2671. for Prolog III by PrologIA is BIM Systems, Inc. 
  2672.  
  2673. Prolog-86 is available from Solution Systems Inc. For more
  2674. information, write to Solution Systems Inc., 335-D Washington Street,
  2675. Norwell, MA 02061, call 617-337-6963, or fax 617-431-8419.
  2676.  
  2677. PTC (Prolog To C) is a portable Prolog compiler based around an
  2678. optimized Prolog to ANSI C compiler.  It runs on Sun, SGI, IBM (Unix),
  2679. and HP.  PTC includes an integrated compiler/interpreter,
  2680. project-file-based compilation, a Motif user interface, editor,
  2681. debugger, online help, and support for C modules. It costs $1,495 for
  2682. the development environment and $795 for each additional runtime
  2683. library. The standalone environment is $495. For more information,
  2684. write to Paralogic Inc., 115 Research Drive, Bethlehem, PA 18015,
  2685. call 215-861-6960, fax 215-861-8247 or send email to
  2686. plogic@lehi3b15.csee.Lehigh.edu.
  2687.  
  2688. Quintec Prolog is a high-level emulator with interpreter for IBM PC
  2689. (MS-DOS), and Unix workstations such as Vax, VAXstation (Ultrix, VMS),
  2690. Decstation (Ultrix), and Sparc (SunOS4.0). For more information,
  2691. write to Quintec Prolog, Quintec Systems Ltd., Midland House, West Way, 
  2692. Botley, Oxford OS2 0PL, UK, call +44 865 791565, or fax +44 865 791595.
  2693.  
  2694. Quintus Prolog is a complete Prolog development system with extensive
  2695. Prolog libraries, graphical user interface, source-linked debugger,
  2696. profiler, on-line help, interface to X Windows, and user-customizable
  2697. I/O and memory management.  Quintus Prolog supports development of
  2698. stand-alone applications, as well as fully embeddable Prolog modules,
  2699. which may be called as subroutines from other languages.  There are no
  2700. royalties on applications developed with Quintus Prolog.  Quintus
  2701. offers Prolog-based solutions for database, expert system, and GUI
  2702. developers. Quintus also provides Prolog consulting and Prolog
  2703. training.  Platforms include DEC Alpha (OSF/1), HP 9000 (HP-UX), IBM
  2704. RS/6000 (AIX), PC (DOS, Windows, Windows NT, Solaris, OS/2), Macintosh 32bit, 
  2705. SGI (IRIX), Sun SPARC (SunOS, Solaris).  For product information and
  2706. Prolog training schedules contact Quintus Corporation, 301 East Evelyn
  2707. Avenue, Mountain View, CA 94041, call 415-254-2800 or 800-542-1283 (US),
  2708. fax 415-428-0211, or send email to sales@quintus.com.  To be added to
  2709. the users group mailing list, email to quintus-users-request@quintus.com.
  2710. The email address for technical support is teksup@quintus.com.
  2711.  
  2712. SICStus Prolog:
  2713.  
  2714.    SICStus Prolog 2.1 is an Edinburgh compatible Prolog that runs on
  2715.    Macintosh, 386/486 (MSDOS), and most UNIX platforms. It includes a
  2716.    WAM-based emulator and compiler, native code compilation for Sparc and
  2717.    680x0, indexed interpreted and compiled predicates mixed arbitrarily,
  2718.    support for cyclic terms, garbage collection and stack shifting,
  2719.    backtrackable side-effects, coroutining facilities, exceptions, unbounded
  2720.    precision integer arithmetic, double precision floating point arithmetic,
  2721.    extended set of built-in arithmetic functions, a Boolean constraint solver,
  2722.    socket communication, support for building stand-alone applications,
  2723.    bidirectional C/Prolog interface, user-defined streams and signals, a GNU
  2724.    Emacs interface, execution profiling, a "procedure box" debugger, and a
  2725.    module system.  It comes with a library of utility modules implementing
  2726.    commonly needed algorithms and data types, an external store for Prolog
  2727.    facts with user-defined indexing, an object-oriented extension (SICStus
  2728.    Objects), and a package for GUI construction.
  2729.  
  2730.    Muse is an OR-parallel version of SICStus Prolog.  Muse runs on several
  2731.    multiprocessor platforms and supports full Prolog and most builtins.  The
  2732.    current version is a research version based on SICStus Prolog 0.6, but soon
  2733.    it will be integrated into the main SICStus Prolog release.
  2734.  
  2735.    Mixtus is an automatic partial evaluator for SICStus Prolog. Presently
  2736.    it is distributed separately. Contact dan@sics.se for more information.
  2737.  
  2738.    Available third-party products include: 
  2739.  
  2740.      +  APPEAL 2.1 (an interface and language to program X Toolkit
  2741.     applications, email: appeal@dslogics.it, or write to: Cristina
  2742.     Ruggieri, DS logics S.r.l., Viale Silvani 1, 40122, Bologna, Italy,
  2743.     Tel. +39-51-521285, Fax. +39-51-522109)
  2744.  
  2745.      +  XPCE and PI X Windows interfaces (see [1-9])
  2746.  
  2747.      +  PRODATA (a tight coupling to Oracle, Ingres or Sybase relational
  2748.     database systems, write to: Keylink Computer Ltd., 2 Woodway House,
  2749.     Common Lane, Kenilworth, Warwickshire CV8 2ES, UK, Tel: +44-926-50909,
  2750.     Fax: +44-926-864128)
  2751.  
  2752.      +  NP Module (an interface to a highly efficient propositional
  2753.     logic theorem prover.  Contact: Logikkonsult NP AB,
  2754.         Jakobdalsv{gen 13, 126 53 H{gersten, Sweden. 
  2755.         Tel: +46-8-188809, Fax: +46-8-183210 ).
  2756.  
  2757.    Personal, academic and commercial licenses are available.  More
  2758.    information is available on the WWW 
  2759.       http://www.sics.se/ps/sicstus.html
  2760.    or by writing to SICS, Swedish Institute of Computer Science, PO Box 1263,
  2761.    S-164 28 KISTA, Sweden, calling +46 8 752 15 02, fax +46 8 751 72 30, or
  2762.    sending email to sicstus-request@sics.se or sicstus@sics.se. Bug reports
  2763.    and tech support questions should be sent to sicstus-bug@sics.se.  To
  2764.    subscribe to the users group and implementors mailing list, send email
  2765.    to sicstus-users-request@sics.se.
  2766.  
  2767. SNI Prolog Version 3 is an implementation of the Prolog language that
  2768. is compatible with the ISO Standard draft. It is available from
  2769. Siemens Nixdorf for Unix workstations for about DM 11100 in Germany.
  2770. SNI Prolog runs on the SGI, SNI and Sun platforms, and ports to other
  2771. systems, including MS-DOS, are in progress. Includes coroutines,
  2772. finite domains, numerical and boolean constraints, garbage collection,
  2773. incremental compilation, dynamic linking, hypertext style on-line
  2774. help, a window environment with an integrated editor, interfaces to
  2775. INFORMIX, Motif/XWindows and C. The constraint programming features of
  2776. SNI Prolog provide support for solving problems from operations
  2777. research such as dynamic resource allocation and flexible scheduling
  2778. with numerical constraints or the verification of complex systems with
  2779. Boolean constraints. For more information, write to Siemens Nixdorf
  2780. Informationssysteme AG, Otto-Hahn-Ring 6, D-8000 Munich 83, Germany,
  2781. Attn: Hans-Juergen Stenger, Systems Planning, call +49 89 636 44049,
  2782. fax +49 89 636 41208, or send email to stenger@sd235-hera.zfe.siemens.de.
  2783.  
  2784. SPIES YAP is a high-level emulator with interpreter for the Apple
  2785. Macintosh, Amiga (Atari ST), and Unix workstations including Sun3,
  2786. Sun4, VAXstation, SGI, and HP9000. For more information, write to
  2787. SPIES, Sociedade Portuguesa de, Importacao e Exportacao de Software,
  2788. Lda Av da Republica, 46 - 2, 1000 Lisboa, Portugal, call +351 1
  2789. 795075, or fax +351 1 775891.
  2790.  
  2791. Turbo Prolog. See PDC Prolog.
  2792.  
  2793. XPRO 5.0 is a Prolog development environment for OS/2. It includes
  2794. a 32-bit Prolog interpreter/compiler and a rule compiler than compiles
  2795. natural language-style rules into Prolog code. Includes a C/C++
  2796. interface. Costs $299 (no runtime or license fees). For more
  2797. information, contact: Rational Vision, 7111 West Indian School Road,
  2798. Suite 131, Phoenix, AZ 85033, or phone 602-846-0371.
  2799.  
  2800.  
  2801. See also CHIP V4 from COSYTEC in [2-6].
  2802.  
  2803. ----------------------------------------------------------------
  2804. Subject: [2-3] Free Parallel Prolog Implementations
  2805.  
  2806. This section contains free parallel Prolog and logic programming
  2807. implementations. 
  2808.  
  2809. BAP:
  2810.    Brain Aid Prolog (BAP) is a Concurrent Sequential Processes (CSP)
  2811.    based standard Prolog for Transputer networks. BAP uses its own MS
  2812.    Windows or X Windows server for I/O. Special features include
  2813.    automatic topology adapation and concurrent source level debugging
  2814.    (see several processes exchange messages). Performance is pretty high,
  2815.    comparable to that of other Prolog compilers. BAP has achieved good
  2816.    results (>80% efficiency) when executing applications like N-queens or
  2817.    checkers in parallel on an 8 processor network. A demo version that
  2818.    supports Transputer systems with a maximum of 2 processors is
  2819.    available by anonymous ftp from 
  2820.       unlisys.in-berlin.de:/pub/brainaid/
  2821.    and also from the CMU AI Repository, in
  2822.       ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/parallel/bap/
  2823.    A full version for up to 128 nodes is also available for both SUN and
  2824.    PC. Write to Frank Bergmann <fraber@cs.tu-berlin.de> or 
  2825.    <bap_info@brainaid.in-berlin.de> for more information. 
  2826.  
  2827. BeBOP:
  2828.    The BeBOP language combines sequential and parallel Logic Programming
  2829.    (LP), object oriented programming and meta-level programming. The LP
  2830.    component offers both don't know non-determinism and stream AND
  2831.    parallelism, a combination not possible with concurrent LP languages.
  2832.    BeBOP's object oriented features include object IDs, encapsulation,
  2833.    message passing, state updating, and object behaviour modification.
  2834.    The meta-level capabilities are based on the treatment of Prolog
  2835.    theories as first order entities, which enables them to be updated
  2836.    easily and lets fragments to be passed between objects in messages.
  2837.    BeBOP is implemented by translation down to NU-Prolog, and its
  2838.    parallel extension, PNU-Prolog.  The BeBOP system (BeBOP and bp) and
  2839.    the PNU-Prolog preprocessor pnp can be obtained by anonymous ftp from
  2840.    munnari.oz.au:/pub/bebop.tar.Z [128.250.1.21].  The release comes with
  2841.    a user manual, several papers (in Postscript format), sample programs,
  2842.    and source code.  The BeBOP system requires the NU-Prolog system,
  2843.    compiler and interpreter, the pnp preprocessor (which is included as
  2844.    part of the BeBOP system release), GCC or a similar compiler, Yacc (or
  2845.    Bison) and Lex. For more information, contact Andrew Davison,
  2846.    <ad@cs.mu.oz.au>, Dept. of Computer Science, University of Melbourne,
  2847.    Parkville, Victoria 3052, Australia, call +61 3-287-9172/9101, or fax
  2848.    +61 3-348-1184.
  2849.  
  2850. KLIC:
  2851.    KLIC is a portable implementation of KL1 (an extended Flat GHC), a
  2852.    concurrent logic programming language developed at ICOT in Japan.
  2853.    Runs on Suns, HPs, DECs, and Linux PC's and marks 2 MLIPS on
  2854.    SparcStation 10/30 and 4MLIPS on system with 200MHz Alpha.  A
  2855.    sequential version available via anonymous ftp from ftp.icot.or.jp.
  2856.    Parallel versions planned shortly.  A representative paper on the
  2857.    language is Kazunori Ueda and Takashi Chikayama, "Design of the
  2858.    Kernel Language for the Parallel Inference Machine", The Computer
  2859.    Journal, December, 1990.  A paper on its KLIC implementation is
  2860.    Takashi Chikayama, Tetsuro Fujise and Daigo Sekita, "A Portable and
  2861.    Efficient Implementation of KL1", PLILP'94 (LNCS #844,
  2862.    Springer-Verlag).  For more information, send an email to
  2863.    klic-requests@icot.or.jp or write to ICOT Free Software Desk,
  2864.    Institute for New Generation Computer Technology, 21st Floor, Mita
  2865.    Kokusai Bldg., 4-28, Mita 1-chome, Minato-ku, Tokyo 108, Japan, fax
  2866.    +81-3-3456-1618.
  2867.  
  2868. Multi-BinProlog:
  2869.    Multi-BinProlog 2.00 is a prototype Linda-style parallel extension to
  2870.    BinProlog 1.71 developed by Koen De Bosschere and Paul Tarau. It uses
  2871.    Koen's C-parser and C-writer which together speed-up IO considerably.
  2872.    It works with shared-memory and remote procedure calls and is
  2873.    available from clement.info.umoncton.ca:MultiBinProlog/
  2874.    See BinProlog in [2-1] for more information.
  2875.  
  2876. NCL:
  2877.    NCL (Net-Clause Language) is aimed at describing distributed
  2878.    computation models using term unification as a basic processing and
  2879.    control mechanism. It is embedded in standard Prolog and comprises two
  2880.    parts -- net-clauses and data-driven rules, which can communicate each
  2881.    to other and to standard Prolog programs.  A net-clause is a special
  2882.    domain in the database defining a network of nodes and links. The
  2883.    nodes are represented by Prolog compound terms. The variables
  2884.    occurring within the nodes are global logical variables, which can be
  2885.    shared within the scope of the net-clause thus playing the role of
  2886.    network links.  Two control mechanisms are implemented: a spreading
  2887.    activation scheme similar to the connectionist spreading activation
  2888.    and to the marker passing mechanism in SN (in logic programming it is
  2889.    seen as a restricted forward chaining) and a default mechanism based
  2890.    on using variables to propagate terms without being bound to them,
  2891.    thus implementing the non-monotonicity of default reasoning.  The
  2892.    Data-driven Rules implement a full scale forward chaining for Horn
  2893.    clauses.  They simulate a data-driven parallel computation, where each
  2894.    rule is a process (in contrast to the traditional parallel logic
  2895.    programming where each goal is a process). The NCL/Prolog interpreter
  2896.    along with a reference manual and a set of examples is available by
  2897.    anonymous ftp at ai.uga.edu:/pub/misc/ncl.tar.Z. For more information
  2898.    contact Zdravko Markov, Institute of Informatics, Bulgarian Academy of
  2899.    Sciences Acad.G.Bonchev Street, Block 29A, 1113 Sofia, Bulgaria,
  2900.    <markov@iinf.bg>.
  2901.  
  2902. PCN:
  2903.    PCN (Program Composition Notation) is not a logic programming
  2904.    language, but it has similarities to Strand and other concurrent logic
  2905.    programming languages. PCN is a parallel programming system that
  2906.    provides a simple language for specifying concurrent algorithms,
  2907.    interfaces to Fortran and C, a portable toolkit that allows
  2908.    applications to be developed on a workstation or small parallel
  2909.    computer and run unchanged on supercomputers, and integrated debugging
  2910.    and performance analysis tools. PCN includes a runtime system,
  2911.    compiler, linker, a set of standard libraries, virtual topology tools,
  2912.    a symbolic debugger (PDB), an execution profiler (Gauge), and a trace
  2913.    analysis tool (Upshot). PCN was developed at Argonne National
  2914.    Laboratory and the California Institute of Technology.  PCN runs on
  2915.    Sun4, NeXT, IBM RS/6000, SGI Iris, Intel iPSC/860, Intel Touchstone
  2916.    DELTA, Sequent Symmetry running Dynix (not PTX), and should be easy to
  2917.    port to other architectures. PCN is in the public domain and can be
  2918.    obtained by anonymous ftp from
  2919.       info.mcs.anl.gov:/pub/pcn/pcn_v2.0.tar.Z 
  2920.    The distribution includes a user's guide containing a tutorial and
  2921.    reference material. For further information on PCN, please send email to
  2922.    <pcn@mcs.anl.gov> or contact Ian Foster <foster@mcs.anl.gov>
  2923.    708-252-4619 or Steve Tuecke <tuecke@mcs.anl.gov> 708-252-8711.
  2924.  
  2925. ROLOG: 
  2926.    ROLOG is a parallel PROLOG compiler with a reduce-OR process model.
  2927.    It is available by anonymous ftp from cs.uiuc.edu:/pub/ROLOG/.
  2928.  
  2929. See also IC-Prolog II (a multi-threaded Prolog) in [2-1].
  2930.  
  2931. ----------------------------------------------------------------
  2932. Subject: [2-4] Commercial Parallel Prolog Implementations
  2933.  
  2934. This section contains commercial parallel Prolog and logic programming
  2935. implementations. 
  2936.  
  2937. Densitron CS Prolog is a parallel prolog compiler and interpreter for
  2938. IBM PCs (MS-DOS or OS/2), T414/T800 transputer (mono or multi), 386
  2939. (Unix V), uVAX (VMS), or VAX(VMS). Also standard Prolog for MS-DOS,
  2940. UNIX and VAX. For more information, write to Densitron, Unit 4,
  2941. Aiport Trading Estate, Biggin Hill, Kent, TN16 3BW, UK, call +44 959
  2942. 76331, or fax +44 959 71017.
  2943.  
  2944. Paralogic is a parallel implementation of the Clocksin and Mellish
  2945. Prolog. It runs on DOS-based PCs or Apple Macintoshes with the INMOS
  2946. Transputers. For more information, write to Paralogic Inc., 115
  2947. Research Drive, Bethlehem, PA 18015, call 215-861-6960, fax
  2948. 215-861-8247 or email plogic@lehi3b15.csee.Lehigh.edu. It is also
  2949. distributed by Computer Systems Architects, 905 N. University Avenue,
  2950. Provo, UT 84604-3422, 800-753-4272 (801-374-2300), or fax 801-374-2306 
  2951. as n-parallel Prolog.
  2952.  
  2953. PARLOG is a parallel emulator from Imperial College for the Sequent
  2954. Balance, Sequent Symmetry, Encore Multimax, Alliant FX (Unix), Sun
  2955. (Unix, 1 processor). For more information, write to Imperial College,
  2956. Department of Computing, Parlog Distribution Secretary, 180 Queen's
  2957. Gate, London SW7 2BZ, UK, call +44 71 589 5111 x7537, fax +44 71 589
  2958. 8024, or send email to parlog@doc.ic.ac.uk. The single processor
  2959. versions of PARLOG for the Sun-3 and Sun-4 are now available free of
  2960. charge.  Please refer to the entry regarding IC-Prolog II in this
  2961. Resource Guide. Parallel Logic Programming produces PC-PARLOG and
  2962. MacPARLOG for the IBM PC and Macintosh computers.  For more
  2963. information contact Parallel Logic Programming Ltd., PO Box 49,
  2964. Twickenham, Middlesex TW2 5PH, UK or call +44 454 201 652.
  2965.  
  2966. Strand-88 is a parallel emulator for Sun3, Sun4, Sparc BBN Butterfly,
  2967. GPT2000, Cogent Multimax, Intel iPSC/2, iPSC/860, MIPS RiscStation,
  2968. Sequent Symmetry Balance (Unix System V or Mach, Helios) and
  2969. communication component from CSTools, Express in some cases. Also
  2970. Transputer systems PC hosted systems from Paracom, Telmat and others,
  2971. Unix hosted systems from Meiko, Paracom, Telmat and others, Apple
  2972. Macintosh, Atari ATW, and NeXT. Price dependent on configuration and
  2973. scale of target machine. For more information, write to Strand
  2974. Software Technologies Ltd., Ver House, London Rd, Markyate, Herts AL3
  2975. 8JP, UK, call +44 582 842424, fax +44 582 840282, or send email to
  2976. strand88@sstl.uucp.
  2977.  
  2978. SICS Aurora and Echo. See SICStus Prolog above.
  2979.  
  2980. ----------------------------------------------------------------
  2981. Subject: [2-5] Free Constraint Systems
  2982.  
  2983. This section contains constraint systems, constraint logic programming
  2984. systems, concurrent constraint languages, and other constraint
  2985. processing systems.
  2986.  
  2987. CIAL:
  2988.  
  2989.    CIAL 1.0b is an interval constraint logic programming language. The main
  2990.    difference between CIAL and other CLP(Interval) languages is that a
  2991.    linear constraint solver, which is based on preconditioned interval
  2992.    Gauss-Seidel method, is embedded in CIAL in addition to the interval
  2993.    narrowing solver. 
  2994.  
  2995.    The main motivations for a linear solver are:
  2996.  
  2997.       * Pure interval narrowing fails to narrow the intervals to any useful 
  2998.     width even for such simple systems as {X+Y=5, X-Y=6}.  Interval
  2999.     splitting may help but is costly.
  3000.  
  3001.       * Pure interval narrowing cannot always detect inconsistency or halt
  3002.     (in a reasonable time).  A simple example is {A+1=D, A+B=D, A>0, B<0}.
  3003.  
  3004.       * Efficient linear constraint solver is also important to the study of
  3005.     efficient non-linear constraint-solving.  Recent results show that 
  3006.     interval Newton method works better than pure interval narrowing for 
  3007.     solving non-linear constraints, but may require to solve many linear
  3008.     constraints in order to give the best results.
  3009.  
  3010.    This version of CIAL prototype is implemented as an extension to CLP(R)
  3011.    v1.2 and tested on Sun Sparc machines. You should have obtained CLP(R)
  3012.    from IBM prior to installing CIAL. The distribution is in the form of
  3013.    patches to the CLP(R) sources. [See entry on CLP(R) below].
  3014.    Send email to cial@cs.cuhk.hk to request CIAL, and for more details.
  3015.  
  3016.    Relevant papers include
  3017.  
  3018.       C.K. Chiu and J.H.M. Lee, "Towards practical interval constraint solving
  3019.       in logic programming", in Proceedings of the Eleventh International
  3020.       Logic Programming Symposium, Ithaca, NY, USA, November 1994 (to appear).
  3021.  
  3022.       J.H.M. Lee and T.W. Lee, "A WAM-based abstract machine for interval
  3023.       constraint logic programming and the multiple-trailing problem", in
  3024.       Proceedings Sixth IEEE International Conference on Tools with
  3025.       Artificial Intelligence, New Orleans, Nov 1994.
  3026.  
  3027. cu-Prolog:
  3028.    cu-Prolog is an experimental constraint logic programming language
  3029.    available free from Japan's Institute for New Generation Computer
  3030.    Technology (ICOT). Unlike most conventional CLP systems, cu-Prolog
  3031.    allows user-defined predicates as constraints and is suitable for
  3032.    implementing a natural language processing system based on the
  3033.    unification-based grammar. For example, the cu-Prolog developers
  3034.    implemented a JPSG (Japanese Phrase Structure Grammar) parser in
  3035.    cu-Prolog with the JPSG Working Group (the chairman is Prof. GUNJI,
  3036.    Takao of Osaka University) at ICOT. cu-Prolog is a complete
  3037.    implementation of Constraint Unification (cu), hence the name.
  3038.    cu-Prolog is implemented in C for BSD UNIX 4.2/3. Professor Sirai of
  3039.    Chukyo-University has also implemented cu-Prolog for the Apple
  3040.    Macintosh and DJ's GPP (80386/486 MS-DOS machine with the DOS
  3041.    extender). cu-Prolog is available free by anonymous ftp from
  3042.    ftp.icot.or.jp. For further information, send email to ifs@icot.or.jp,
  3043.    or write to ICOT Free Software Desk, Institute for New Generation
  3044.    Computer Technology, 21st Floor, Mita Kokusai Bldg., 4-28, Mita
  3045.    1-chome, Minato-ku, Tokyo 108, Japan, fax +81-3-3456-1618.
  3046.  
  3047. clp(FD):
  3048.    clp(FD) 2.2 is a constraint logic programming language over finite
  3049.    domains and booleans based on the wamcc Prolog compiler (see [2-1]).
  3050.    clp(FD) provides several constraints "a la CHIP" on finite domains and
  3051.    booleans and some facilities for building new constraints. clp(FD) is
  3052.    4 times faster than CHIP v3.2 on average.  clp(FD) requires GCC 2.4.5
  3053.    or higher and has been tested on Sparc workstations, DEC (Ultrix),
  3054.    Sony MIPS (R3000), and 386/486 PCs under linux. It should be
  3055.    easily ported to 32-bit machines with GCC.  clp(FD) is available free
  3056.    by anonymous ftp from
  3057.       ftp.inria.fr:/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/clp_fd/
  3058.    For more information, write to Daniel Diaz <Daniel.Diaz@inria.fr>,
  3059.    INRIA Rocquencourt, FRANCE.
  3060.  
  3061. CLP(R):
  3062.    CLP(R) is a constraint logic programming language with real-arithmetic
  3063.    constraints.  The implementation contains a built-in constraint solver
  3064.    which deals with linear arithmetic and contains a mechanism for delaying
  3065.    nonlinear constraints until they become linear.  Since CLP(R) subsumes
  3066.    PROLOG, the system is also usable as a general-purpose logic programming
  3067.    language. It includes facilities for meta-programming with constraints.
  3068.    The system consists of a compiler, byte-code emulator, and constraint
  3069.    solver. CLP(R) is written entirely in C and runs on Suns, Vaxen,
  3070.    MIPS-based machines (Decstations, Silicon Graphics), IBM RS6000s and
  3071.    PS2s. Includes MS-DOS support. It is available free from IBM for 
  3072.    academic and research purposes only. To get a copy, write
  3073.    to Joxan Jaffar, H1-D48, IBM Thomas J. Watson Research Center,
  3074.    P.O. Box 704, Yorktown Heights, NY 10598, or send email to
  3075.    joxan@watson.ibm.com or joxan@yktvmh.bitnet. Current version 1.2.
  3076.    For more information, write to Joxan or Roland Yap
  3077.    <roland@bruce.cs.monash.edu.au>.
  3078.  
  3079. OZ:
  3080.    Oz is a concurrent constraint programming language designed for
  3081.    applications that require complex symbolic computations, organization
  3082.    into multiple agents, and soft real-time control.  It is based on a
  3083.    computation model that provides a uniform foundation for higher-order
  3084.    functional programming, constraint logic programming, and concurrent
  3085.    objects with multiple inheritance.  From functional languages Oz
  3086.    inherits full compositionality, and from logic languages Oz inherits
  3087.    logic variables and constraints (including feature and finite domain
  3088.    constraints). Search in Oz is encapsulated (no backtracking) and
  3089.    includes one, best and all solution strategies.
  3090.  
  3091.    DFKI Oz is an interactive implementation of Oz featuring a programming
  3092.    interface based on GNU Emacs, a concurrent browser, an object-oriented
  3093.    interface to Tcl/Tk, powerful interoperability features (sockets, C,
  3094.    C++), an incremental compiler, a garbage collector, and support for
  3095.    stand-alone applications.  Performance is competitive with commercial
  3096.    Prolog and Lisp systems.  DFKI Oz is available for many platforms
  3097.    running Unix/X, including Sparcs and 486 PCs.
  3098.  
  3099.    Applications DFKI Oz has already been used for include simulations,
  3100.    multi-agent systems, natural language processing, virtual reality,
  3101.    graphical user interfaces, scheduling, placement problems, and
  3102.    configuration.
  3103.  
  3104.    Version 1.0 of DFKI Oz has been released on January 23, 1995.  DFKI Oz
  3105.    is available by anonymous ftp from
  3106.       ps-ftp.dfki.uni-sb.de:/pub/oz
  3107.    or through the WWW from
  3108.       http://ps-www.dfki.uni-sb.de/
  3109.    Tutorials, reference manuals, and research papers are available from
  3110.    the same locations.  You may start with "A Survey of Oz" (8 pages) and
  3111.    continue with "An Oz Primer" (110 pages). Questions may be directed to
  3112.    oz@dfki.uni-sb.de. To join the Oz users mailing list, contact
  3113.    oz-users-request@dfki.uni-sb.de.
  3114.  
  3115. See also ECLiPSe, Beta-Prolog, and LIFE in [2-1] and ALE in [1-5].
  3116.  
  3117. ----------------------------------------------------------------
  3118. Subject: [2-6] Commercial Constraint Systems
  3119.  
  3120. This section contains constraint systems, constraint logic programming
  3121. systems, concurrent constraint languages, and other constraint
  3122. processing systems.
  3123.  
  3124. CHIP V4 (Constraint Handling In Prolog) is designed as an extension to
  3125. Prolog offering three constraint solving domains: Integers, Rationals
  3126. and Booleans. The system was originally developed at ECRC in Munich
  3127. and now extended by the same team at COSYTEC in Paris. CHIP V4
  3128. includes extensions to the three domains: symbolic constraints, update
  3129. demons and cumulative constraints. The system is available with
  3130. optional interfaces for X11 and DOS graphics (XGIP), Oracle or Ingres
  3131. database connection (QUIC), C language interface (CLIC) and embedded
  3132. application interface (EMC). CHIP V4 is written completely in C, and
  3133. is available on a range of workstations including SunSparc (SunOS
  3134. 4.1), IBM RS6000 (AIX 3.2), HP 9000/700 series (HPUX 9.0) and
  3135. Decstation 3000 & 5000 (Ultrix 4.2) and PC386/486 (Dos 5.0).
  3136. Development and Runtime licences can be purchased for single-user,
  3137. multi-user or site licences together with support and maintenance. An
  3138. academic discount is offered for educational and research purposes.
  3139. For more information contact COSYTEC, Parc Club Orsay Universite 4 rue
  3140. Jean Rostand, 91893 Orsay Cedex, France, phone +33-1-60-19-37-38, fax
  3141. +33-1-60-19-36-20 or email <cosytec@cosytec.fr>.  The Tech Support
  3142. email address is help@cosytec.fr. COSYTEC is a founding
  3143. member of the PVG (Prolog Vendors Group).
  3144.  
  3145. CLP(R) is a constraint system from Monash University for VAX, Sun, and
  3146. Pyramid (Unix). Costs $150. For more information, write to Monash
  3147. University, CLP(R) Distribution, Department of Computer Science,
  3148. Clayton, Victoria 3168, Australia, or send email to
  3149. clp@moncsbruce.oz.au.
  3150.  
  3151. ILOG SOLVER (formerly called PECOS) is a C++ library that implements a 
  3152. CLP (Constraint Logic Programming) instance known as finite domains.
  3153. It is available on most Unix platforms, including Sun, HP, IBM
  3154. RS-6000, DEC, and SGI, and on Windows 3.1 for both Microsoft Visual
  3155. C++ and Borland C++. This library includes:
  3156.   - Prolog control structures:  non determinism, choice points,
  3157.     backtracking and cut. Modification of user-defined objects can be
  3158.     trailed so that their state is restored when a failure occurs.
  3159.   - Finite domain logical variables, and associated constraints.
  3160.   - Finite set logical variables and associated constraints.
  3161.   - Interval floating point variables, and associated
  3162.     constraints, analogous to what is found in BNR Prolog.
  3163.   - Predefined search and optimization algorithms. 
  3164. ILOG SOLVER does not use unification for passing arguments.  This
  3165. enables a smooth integration with C++. For further information: In the
  3166. USA and Canada, contact ILOG, Inc., 2073 Landings Drive, Mountain
  3167. View, CA 94303, phone (415) 390-9000, fax (415) 390-0946, e-mail
  3168. info@ilog.com.  Outside the USA and Canada: contact ILOG SA, 12 avenue
  3169. Raspail, 94251 Gentilly Cedex, France, tel (+33 1) 4740-8000, 
  3170. fax (+33 1) 4740-0444, e-mail info@ilog.fr, or URL 
  3171.    http://www.ilog.fr/ilog/home.html
  3172. See also http://www.ilog.fr for some papers about Ilog Solver and Ilog
  3173. Schedule. 
  3174.  
  3175. VS Trilogy is a Prolog compiler available from Vertical Software for
  3176. $395. For more information, write to Vertical Software Ltd., 14-636
  3177. Clyde Ave, W. Vancouver, BC, V7T 1E1, Canada, call 604-925-0321, or fax
  3178. 604-688-8479.
  3179.  
  3180. See also Prolog III and SNI Prolog in [2-2].
  3181.  
  3182. ----------------------------------------------------------------
  3183. Subject: [2-7] Free Logic Programming Systems
  3184.  
  3185. ALF:
  3186.    ALF (Algebraic Logic Functional programming language) is a
  3187.    language which combines functional and logic programming techniques.
  3188.    The foundation of ALF is Horn clause logic with equality which
  3189.    consists of predicates and Horn clauses for logic programming, and
  3190.    functions and equations for functional programming.  The abstract
  3191.    machine is based on the Warren Abstract Machine (WAM) with several
  3192.    extensions to implement narrowing and rewriting.     In the current
  3193.    implementation programs of this abstract machine are executed by an
  3194.    emulator written in C. It is available by anonymous ftp from
  3195.       ftp.germany.eu.net:/pub/programming/languages/LogicFunctional/
  3196.    (aka simpson.germany.eu.net) as the files alf_*.zoo
  3197.    (Documentation, C sources for the emulator, the preprocessor and the
  3198.    compiler). For further information, contact Rudolf Opalla
  3199.    <opalla@julien.informatik.uni-dortmund.de>.
  3200.  
  3201. CORAL:
  3202.    CORAL is a deductive database/logic programming system developed at
  3203.    the University of Wisconsin-Madison. It is a declarative language
  3204.    based on Horn-clause rules with extensions like SQL's group-by and
  3205.    aggregation operators, and uses a Prolog-like syntax.
  3206.  
  3207.    CORAL is available via anonymous ftp from ftp.cs.wisc.edu:/coral/.  The
  3208.    distribution includes source code compatible with AT&T C++ Version 2.0
  3209.    or later, executables for Decstations and SUN 4s, the CORAL User
  3210.    Manual, and some related papers containing a language overview and
  3211.    implementation details.  (A version of the source code compatible with
  3212.    GNU g++ will be available shortly.) For more information, contact
  3213.    Raghu Ramakrishnan, <raghu@ricotta.cs.wisc.edu>.
  3214.  
  3215. Lolli:
  3216.    Lolli is an interpreter for logic programming based on linear logic
  3217.    principles. Lolli, named for the linear logic implication operator
  3218.    "-o" called lollipop, is a full implementation of the language
  3219.    described in the paper "Logic Programming in a Fragment of
  3220.    Intuitionistic Linear Logic" (Josh Hodas & Dale Miller, to appear in
  3221.    Information and Computation), though it differs a bit in syntax, and
  3222.    has several built-in extra-logical predicates and operators. Lolli is
  3223.    available by anonymous ftp from 
  3224.       ftp.cis.upenn.edu:/pub/Lolli/Lolli-07.tar.Z 
  3225.    This distribution includes full ML source, along with a Makefile, as well
  3226.    as several background papers and a collection of example programs. For
  3227.    those who do not have SML-NJ at their site, the authors hope to
  3228.    provide pre-built binaries for a variety of architectures. These
  3229.    binaries can be found on 
  3230.       ftp.cis.upenn.edu:/pub/Lolli/binaries/
  3231.    At present Sparc and NeXT binaries are available.  If you compile
  3232.    lolli on a new architecture, please contact Josh Hodas at
  3233.    <hodas@saul.cis.upenn.edu> so that he can make your binary available.
  3234.  
  3235. See also LIFE, SLG, and XSB in [2-1], BeBOP in [2-3], and Oz in [2-5].
  3236.  
  3237. ----------------------------------------------------------------
  3238. Subject: [2-8] Commercial Logic Programming Systems
  3239.  
  3240. None so far. This is to be expected, as most logic programming systems
  3241. are experimental.
  3242.  
  3243. ----------------------------------------------------------------
  3244. Subject: [2-9] Other Commercial Prolog Products
  3245.  
  3246. ClauseDB is a database manager for Prolog data.  Advanced
  3247. knowledge-based applications often need to use a large number of
  3248. highly complex data objects. The objects are so complex that they
  3249. cannot be managed in a standard commercial RDB product, and the number
  3250. of them makes it impractical to store them in the standard Prolog
  3251. in-memory database. ClauseDB may also be useful even in Prolog
  3252. applications whose data can be handled in a RDB. The retrieval
  3253. procedure of ClauseDB is integrated in the Prolog search method. This
  3254. avoids the performance problems that arise with the standard scheme
  3255. for coupling Prolog with a RDBM (e.g., those caused by the well-known
  3256. mismatch problem between tuple- and set-based retrieval methods).
  3257. ClauseDB supports all the normal Prolog data objects (arbitrary terms
  3258. and clauses) and provides a locking mechanism that allows the sharing
  3259. of data while ensuring its integrity. ClauseDB 2.0 is available on
  3260. SUN SPARC (SunOS 4.x and 5.x) and the INTEL PC running Solaris 2.x.
  3261. For more information write to BIM sa/nv, ProLog by BIM dept.,
  3262. Kwikstraat 4, B - 3078 Everberg, Belgium, call ++32 2 759 59 25, fax
  3263. to +32 2 725 47 83 or e-mail to prolog@sunbim.be.
  3264.  
  3265. ----------------------------------------------------------------
  3266. Subject: [2-10] Prolog extensions, meta-interpreters, and pre-processors
  3267.  
  3268. ProFIT (Prolog with Features Inheritance and Templates) is an extension
  3269. of Prolog with sorted feature structures (including multi-dimensional
  3270. inheritance), finite domains, feature search, cyclic terms, and
  3271. templates. ProFIT works as a pre-processor, which takes a file
  3272. containing a ProFIT program as input, and gives a file with a Prolog
  3273. program as output. Sorted feature terms and finite domains are
  3274. compiled into a Prolog term representation, and the usual Prolog term
  3275. unification is used at runtime, so that there is no slowdown through a
  3276. unification algorithm, and no meta-interpreter is needed. ProFIT uses
  3277. the same techniques for compiling sorted feature terms and finite
  3278. domains into Prolog terms as the Core Langauge Engine of SRI Cambridge
  3279. and the Advanced Linguistic Engineering Platform (ALEP 2.2) by the
  3280. European Community, BIM, and Cray Systems. ProFIT is not a grammar
  3281. formalism (although it is motivated by NLP), although it provides some
  3282. ingredients that are considered typical of grammar formalisms. The goal
  3283. of ProFIT is to provide these datatypes without enforcing any
  3284. particular theory of grammar, parsing or generation. ProFIT can be used
  3285. to extend your favourite Prolog-based grammar formalism, parser and
  3286. generator with the expressive power of sorted feature terms. Cyclic
  3287. terms can be printed out and a user-configurable pretty-printer for
  3288. feature terms is provided. ProFIT is available free of charge by
  3289. anonymous ftp from
  3290.    coli.uni-sb.de:/pub/profit/
  3291. and is implemented in Sicstus Prolog (2.1 #9). For more information,
  3292. write to Gregor Erbach, Univ. Saarlandes, Saarbruecken, Germany
  3293. <erbach@coli.uni-sb.de> <http://coli.uni-sb.de/~erbach>.
  3294.  
  3295. ----------------------------------------------------------------
  3296. ;;; *EOF*
  3297.